{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Plotting Installation:\n", "\n", "The plotting package allows you to make an interactive CRN plot. Plotting requires the [Bokeh](https://docs.bokeh.org/en/latest/docs/installation.html) and [ForceAtlas2](https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0098679) libraries to be installed on your machine. Bokeh is used for plotting, ForceAtlas2 is used for graph layout. To install, type the following into the consol:\n", "\n", " conda install bokeh\n", " pip install fa2_modified\n", "\n", "Alternatively, follow the installation instructions in the links above.\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plotting Example\n", "The CRN plot has a default representation:\n", "* species are circles\n", " - orange circles are RNA species\n", " - blue circles are complexes\n", " - green circles are proteins\n", " - grey circles are DNA\n", " -there's always a purple circle that represents nothing. If your CRN doesn't have reactions that go to nothing, then it won't have any connections.\n", " \n", "* reactions are squares\n", "\n", "Click on a node (either reaction or species) and all arrows including that node will be highlighted\n", "Mouse over a node (either reaction or species) and a tooltip will tell you what it is." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Create a BioCRNpyler Model\n", "Here we model a DNA assembly with a regulated promoter in a TxTl mixture." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/murray/Library/CloudStorage/Dropbox/macosx/src/biocrnpyler/biocrnpyler/core/parameter.py:678: UserWarning: parameter file contains no unit column! Please add a column named ['unit', 'units'].\n", " warn(\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Species(N = 13) = {\n", " rna[mydna] (@ 10), \n", " found_key=(mech=initial concentration, partid=None, name=mydna).\n", " search_key=(mech=initial concentration, partid=mixture1, name=mydna).\n", "\n", " dna[mydna] (@ 10), \n", " found_key=(mech=initial concentration, partid=None, name=mydna).\n", " search_key=(mech=initial concentration, partid=mixture1, name=mydna).\n", "\n", " complex[protein[Ribo]:rna[mydna]] (@ 0), \n", " complex[protein[RNAase]:rna[mydna]] (@ 0), \n", " protein[laci] (@ 0), \n", " complex[dna[mydna]:2x_protein[laci]] (@ 0), \n", " complex[dna[mydna]:protein[RNAP]] (@ 0), \n", " complex[complex[protein[Ribo]:rna[mydna]]:protein[RNAase]] (@ 0), \n", " complex[complex[dna[mydna]:2x_protein[laci]]:protein[RNAP]] (@ 0), \n", " protein[Ribo] (@ 0), \n", " protein[RNAase] (@ 0), \n", " protein[RNAP] (@ 0), \n", " protein[GFP] (@ 0), \n", "}\n", "\n", "Reactions (12) = [\n", "0. dna[mydna]+protein[RNAP] <--> complex[dna[mydna]:protein[RNAP]]\n", " Kf=k_forward * dna_mydna * protein_RNAP\n", " Kr=k_reverse * complex_dna_mydna_protein_RNAP_\n", " k_forward=100.0\n", " found_key=(mech=None, partid=None, name=kb).\n", " search_key=(mech=transcription_mm, partid=plac_leak, name=kb).\n", " k_reverse=10.0\n", " found_key=(mech=None, partid=None, name=ku).\n", " search_key=(mech=transcription_mm, partid=plac_leak, name=ku).\n", "\n", "1. complex[dna[mydna]:protein[RNAP]] --> dna[mydna]+rna[mydna]+protein[RNAP]\n", " Kf=k_forward * complex_dna_mydna_protein_RNAP_\n", " k_forward=0.05\n", " found_key=(mech=None, partid=None, name=ktx).\n", " search_key=(mech=transcription_mm, partid=plac_leak, name=ktx).\n", "\n", "2. 2protein[laci]+dna[mydna] <--> complex[dna[mydna]:2x_protein[laci]]\n", " Kf=k_forward * protein_laci^2 * dna_mydna\n", " Kr=k_reverse * complex_dna_mydna_protein_laci_2x_\n", " k_forward=100.0\n", " found_key=(mech=None, partid=None, name=kb).\n", " search_key=(mech=one_step_cooperative_binding, partid=plac_laci, name=kb).\n", " k_reverse=10.0\n", " found_key=(mech=None, partid=None, name=ku).\n", " search_key=(mech=one_step_cooperative_binding, partid=plac_laci, name=ku).\n", "\n", "3. complex[dna[mydna]:2x_protein[laci]]+protein[RNAP] <--> complex[complex[dna[mydna]:2x_protein[laci]]:protein[RNAP]]\n", " Kf=k_forward * complex_dna_mydna_protein_laci_2x_ * protein_RNAP\n", " Kr=k_reverse * complex_complex_dna_mydna_protein_laci_2x__protein_RNAP_\n", " k_forward=100.0\n", " found_key=(mech=None, partid=None, name=kb).\n", " search_key=(mech=transcription_mm, partid=plac_laci, name=kb).\n", " k_reverse=10.0\n", " found_key=(mech=None, partid=None, name=ku).\n", " search_key=(mech=transcription_mm, partid=plac_laci, name=ku).\n", "\n", "4. complex[complex[dna[mydna]:2x_protein[laci]]:protein[RNAP]] --> complex[dna[mydna]:2x_protein[laci]]+rna[mydna]+protein[RNAP]\n", " Kf=k_forward * complex_complex_dna_mydna_protein_laci_2x__protein_RNAP_\n", " k_forward=0.05\n", " found_key=(mech=None, partid=None, name=ktx).\n", " search_key=(mech=transcription_mm, partid=plac_laci, name=ktx).\n", "\n", "5. rna[mydna]+protein[Ribo] <--> complex[protein[Ribo]:rna[mydna]]\n", " Kf=k_forward * rna_mydna * protein_Ribo\n", " Kr=k_reverse * complex_protein_Ribo_rna_mydna_\n", " k_forward=100.0\n", " found_key=(mech=None, partid=None, name=kb).\n", " search_key=(mech=translation_mm, partid=UTR1, name=kb).\n", " k_reverse=10.0\n", " found_key=(mech=None, partid=None, name=ku).\n", " search_key=(mech=translation_mm, partid=UTR1, name=ku).\n", "\n", "6. complex[protein[Ribo]:rna[mydna]] --> rna[mydna]+protein[GFP]+protein[Ribo]\n", " Kf=k_forward * complex_protein_Ribo_rna_mydna_\n", " k_forward=0.05\n", " found_key=(mech=None, partid=None, name=ktl).\n", " search_key=(mech=translation_mm, partid=UTR1, name=ktl).\n", "\n", "7. complex[protein[Ribo]:rna[mydna]]+protein[RNAase] <--> complex[complex[protein[Ribo]:rna[mydna]]:protein[RNAase]]\n", " Kf=k_forward * complex_protein_Ribo_rna_mydna_ * protein_RNAase\n", " Kr=k_reverse * complex_complex_protein_Ribo_rna_mydna__protein_RNAase_\n", " k_forward=100.0\n", " found_key=(mech=None, partid=None, name=kb).\n", " search_key=(mech=rna_degradation_mm, partid=complex_protein_Ribo_rna_mydna_, name=kb).\n", " k_reverse=10.0\n", " found_key=(mech=None, partid=None, name=ku).\n", " search_key=(mech=rna_degradation_mm, partid=complex_protein_Ribo_rna_mydna_, name=ku).\n", "\n", "8. complex[complex[protein[Ribo]:rna[mydna]]:protein[RNAase]] --> protein[Ribo]+protein[RNAase]\n", " Kf=k_forward * complex_complex_protein_Ribo_rna_mydna__protein_RNAase_\n", " k_forward=0.001\n", " found_key=(mech=rna_degradation_mm, partid=None, name=kdeg).\n", " search_key=(mech=rna_degradation_mm, partid=complex_protein_Ribo_rna_mydna_, name=kdeg).\n", "\n", "9. rna[mydna]+protein[RNAase] <--> complex[protein[RNAase]:rna[mydna]]\n", " Kf=k_forward * rna_mydna * protein_RNAase\n", " Kr=k_reverse * complex_protein_RNAase_rna_mydna_\n", " k_forward=100.0\n", " found_key=(mech=None, partid=None, name=kb).\n", " search_key=(mech=rna_degradation_mm, partid=rna_mydna, name=kb).\n", " k_reverse=10.0\n", " found_key=(mech=None, partid=None, name=ku).\n", " search_key=(mech=rna_degradation_mm, partid=rna_mydna, name=ku).\n", "\n", "10. complex[protein[RNAase]:rna[mydna]] --> protein[RNAase]\n", " Kf=k_forward * complex_protein_RNAase_rna_mydna_\n", " k_forward=0.001\n", " found_key=(mech=rna_degradation_mm, partid=None, name=kdeg).\n", " search_key=(mech=rna_degradation_mm, partid=rna_mydna, name=kdeg).\n", "\n", "11. rna[mydna] --> \n", " Kf=k_forward * rna_mydna\n", " k_forward=0.1\n", "\n", "]\n" ] } ], "source": [ "from biocrnpyler.core import Species, Reaction\n", "from biocrnpyler.components import DNAassembly, RegulatedPromoter\n", "from biocrnpyler.mixtures import TxTlExtract\n", "\n", "\n", "txtl = TxTlExtract(\"mixture1\", parameter_file = 'default_parameters.txt')\n", "dna = DNAassembly(\"mydna\",promoter=RegulatedPromoter(\"plac\",[\"laci\"]),rbs=\"UTR1\",protein=\"GFP\", initial_concentration = 10)\n", "txtl.add_component(dna)\n", "crn1 = txtl.compile_crn()\n", "crn1.add_reactions([Reaction.from_massaction([Species(\"mydna\",material_type=\"rna\")],[],k_forward=0.1)])\n", "print(crn1.pretty_print())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plotting a reaction graph\n", "First we import bokeh in order to plot an interactive graph then use the graphPlot function and the BioCRNpyler.plotting.generate_networkx_graph(crn) function to produce a graph. Mouseover the circles to see which species they identify and the squares to see reactions." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "tags": [] }, "outputs": [ { "data": { "text/html": [ " \n", "
\n", " \n", " Loading BokehJS ...\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "'use strict';\n", "(function(root) {\n", " function now() {\n", " return new Date();\n", " }\n", "\n", " const force = true;\n", "\n", " if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n", " root._bokeh_onload_callbacks = [];\n", " root._bokeh_is_loading = undefined;\n", " }\n", "\n", "const JS_MIME_TYPE = 'application/javascript';\n", " const HTML_MIME_TYPE = 'text/html';\n", " const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n", " const CLASS_NAME = 'output_bokeh rendered_html';\n", "\n", " /**\n", " * Render data to the DOM node\n", " */\n", " function render(props, node) {\n", " const script = document.createElement(\"script\");\n", " node.appendChild(script);\n", " }\n", "\n", " /**\n", " * Handle when an output is cleared or removed\n", " */\n", " function handleClearOutput(event, handle) {\n", " function drop(id) {\n", " const view = Bokeh.index.get_by_id(id)\n", " if (view != null) {\n", " view.model.document.clear()\n", " Bokeh.index.delete(view)\n", " }\n", " }\n", "\n", " const cell = handle.cell;\n", "\n", " const id = cell.output_area._bokeh_element_id;\n", " const server_id = cell.output_area._bokeh_server_id;\n", "\n", " // Clean up Bokeh references\n", " if (id != null) {\n", " drop(id)\n", " }\n", "\n", " if (server_id !== undefined) {\n", " // Clean up Bokeh references\n", " const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n", " cell.notebook.kernel.execute(cmd_clean, {\n", " iopub: {\n", " output: function(msg) {\n", " const id = msg.content.text.trim()\n", " drop(id)\n", " }\n", " }\n", " });\n", " // Destroy server and session\n", " const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n", " cell.notebook.kernel.execute(cmd_destroy);\n", " }\n", " }\n", "\n", " /**\n", " * Handle when a new output is added\n", " */\n", " function handleAddOutput(event, handle) {\n", " const output_area = handle.output_area;\n", " const output = handle.output;\n", "\n", " // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n", " if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n", " return\n", " }\n", "\n", " const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n", "\n", " if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n", " toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n", " // store reference to embed id on output_area\n", " output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n", " }\n", " if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n", " const bk_div = document.createElement(\"div\");\n", " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", " const script_attrs = bk_div.children[0].attributes;\n", " for (let i = 0; i < script_attrs.length; i++) {\n", " toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n", " toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n", " }\n", " // store reference to server id on output_area\n", " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n", " }\n", " }\n", "\n", " function register_renderer(events, OutputArea) {\n", "\n", " function append_mime(data, metadata, element) {\n", " // create a DOM node to render to\n", " const toinsert = this.create_output_subarea(\n", " metadata,\n", " CLASS_NAME,\n", " EXEC_MIME_TYPE\n", " );\n", " this.keyboard_manager.register_events(toinsert);\n", " // Render to node\n", " const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n", " render(props, toinsert[toinsert.length - 1]);\n", " element.append(toinsert);\n", " return toinsert\n", " }\n", "\n", " /* Handle when an output is cleared or removed */\n", " events.on('clear_output.CodeCell', handleClearOutput);\n", " events.on('delete.Cell', handleClearOutput);\n", "\n", " /* Handle when a new output is added */\n", " events.on('output_added.OutputArea', handleAddOutput);\n", "\n", " /**\n", " * Register the mime type and append_mime function with output_area\n", " */\n", " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n", " /* Is output safe? */\n", " safe: true,\n", " /* Index of renderer in `output_area.display_order` */\n", " index: 0\n", " });\n", " }\n", "\n", " // register the mime type if in Jupyter Notebook environment and previously unregistered\n", " if (root.Jupyter !== undefined) {\n", " const events = require('base/js/events');\n", " const OutputArea = require('notebook/js/outputarea').OutputArea;\n", "\n", " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n", " register_renderer(events, OutputArea);\n", " }\n", " }\n", " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n", " root._bokeh_timeout = Date.now() + 5000;\n", " root._bokeh_failed_load = false;\n", " }\n", "\n", " const NB_LOAD_WARNING = {'data': {'text/html':\n", " \"
\\n\"+\n", " \"

\\n\"+\n", " \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n", " \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n", " \"

\\n\"+\n", " \"\\n\"+\n", " \"\\n\"+\n", " \"from bokeh.resources import INLINE\\n\"+\n", " \"output_notebook(resources=INLINE)\\n\"+\n", " \"\\n\"+\n", " \"
\"}};\n", "\n", " function display_loaded(error = null) {\n", " const el = document.getElementById(\"b8444f2e-bd13-4c97-b64e-dd955739f91e\");\n", " if (el != null) {\n", " const html = (() => {\n", " if (typeof root.Bokeh === \"undefined\") {\n", " if (error == null) {\n", " return \"BokehJS is loading ...\";\n", " } else {\n", " return \"BokehJS failed to load.\";\n", " }\n", " } else {\n", " const prefix = `BokehJS ${root.Bokeh.version}`;\n", " if (error == null) {\n", " return `${prefix} successfully loaded.`;\n", " } else {\n", " return `${prefix} encountered errors while loading and may not function as expected.`;\n", " }\n", " }\n", " })();\n", " el.innerHTML = html;\n", "\n", " if (error != null) {\n", " const wrapper = document.createElement(\"div\");\n", " wrapper.style.overflow = \"auto\";\n", " wrapper.style.height = \"5em\";\n", " wrapper.style.resize = \"vertical\";\n", " const content = document.createElement(\"div\");\n", " content.style.fontFamily = \"monospace\";\n", " content.style.whiteSpace = \"pre-wrap\";\n", " content.style.backgroundColor = \"rgb(255, 221, 221)\";\n", " content.textContent = error.stack ?? error.toString();\n", " wrapper.append(content);\n", " el.append(wrapper);\n", " }\n", " } else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(() => display_loaded(error), 100);\n", " }\n", " }\n", "\n", " function run_callbacks() {\n", " try {\n", " root._bokeh_onload_callbacks.forEach(function(callback) {\n", " if (callback != null)\n", " callback();\n", " });\n", " } finally {\n", " delete root._bokeh_onload_callbacks\n", " }\n", " console.debug(\"Bokeh: all callbacks have finished\");\n", " }\n", "\n", " function load_libs(css_urls, js_urls, callback) {\n", " if (css_urls == null) css_urls = [];\n", " if (js_urls == null) js_urls = [];\n", "\n", " root._bokeh_onload_callbacks.push(callback);\n", " if (root._bokeh_is_loading > 0) {\n", " console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n", " return null;\n", " }\n", " if (js_urls == null || js_urls.length === 0) {\n", " run_callbacks();\n", " return null;\n", " }\n", " console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", " root._bokeh_is_loading = css_urls.length + js_urls.length;\n", "\n", " function on_load() {\n", " root._bokeh_is_loading--;\n", " if (root._bokeh_is_loading === 0) {\n", " console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n", " run_callbacks()\n", " }\n", " }\n", "\n", " function on_error(url) {\n", " console.error(\"failed to load \" + url);\n", " }\n", "\n", " for (let i = 0; i < css_urls.length; i++) {\n", " const url = css_urls[i];\n", " const element = document.createElement(\"link\");\n", " element.onload = on_load;\n", " element.onerror = on_error.bind(null, url);\n", " element.rel = \"stylesheet\";\n", " element.type = \"text/css\";\n", " element.href = url;\n", " console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n", " document.body.appendChild(element);\n", " }\n", "\n", " for (let i = 0; i < js_urls.length; i++) {\n", " const url = js_urls[i];\n", " const element = document.createElement('script');\n", " element.onload = on_load;\n", " element.onerror = on_error.bind(null, url);\n", " element.async = false;\n", " element.src = url;\n", " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", " document.head.appendChild(element);\n", " }\n", " };\n", "\n", " function inject_raw_css(css) {\n", " const element = document.createElement(\"style\");\n", " element.appendChild(document.createTextNode(css));\n", " document.body.appendChild(element);\n", " }\n", "\n", " const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.3.min.js\"];\n", " const css_urls = [];\n", "\n", " const inline_js = [ function(Bokeh) {\n", " Bokeh.set_log_level(\"info\");\n", " },\n", "function(Bokeh) {\n", " }\n", " ];\n", "\n", " function run_inline_js() {\n", " if (root.Bokeh !== undefined || force === true) {\n", " try {\n", " for (let i = 0; i < inline_js.length; i++) {\n", " inline_js[i].call(root, root.Bokeh);\n", " }\n", "\n", " } catch (error) {display_loaded(error);throw error;\n", " }if (force === true) {\n", " display_loaded();\n", " }} else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(run_inline_js, 100);\n", " } else if (!root._bokeh_failed_load) {\n", " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n", " root._bokeh_failed_load = true;\n", " } else if (force !== true) {\n", " const cell = $(document.getElementById(\"b8444f2e-bd13-4c97-b64e-dd955739f91e\")).parents('.cell').data().cell;\n", " cell.output_area.append_execute_result(NB_LOAD_WARNING)\n", " }\n", " }\n", "\n", " if (root._bokeh_is_loading === 0) {\n", " console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n", " run_inline_js();\n", " } else {\n", " load_libs(css_urls, js_urls, function() {\n", " console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n", " run_inline_js();\n", " });\n", " }\n", "}(window));" ], "application/vnd.bokehjs_load.v0+json": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\n\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(\"b8444f2e-bd13-4c97-b64e-dd955739f91e\");\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.3.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {display_loaded(error);throw error;\n }if (force === true) {\n display_loaded();\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(\"b8444f2e-bd13-4c97-b64e-dd955739f91e\")).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));" }, "metadata": {}, "output_type": "display_data" }, { "name": "stderr", "output_type": "stream", "text": [ "/Users/murray/Library/CloudStorage/Dropbox/macosx/src/biocrnpyler/biocrnpyler/utils/plotting.py:203: UserWarning: Node keys in 'layout_function' don't match node keys in the graph. These nodes may not be displayed correctly.\n", " reaction_renderer = from_networkx(DGreactions, positions, center=(0, 0))\n", "/Users/murray/Library/CloudStorage/Dropbox/macosx/src/biocrnpyler/biocrnpyler/utils/plotting.py:204: UserWarning: Node keys in 'layout_function' don't match node keys in the graph. These nodes may not be displayed correctly.\n", " species_renderer = from_networkx(DGspecies, positions, center=(0, 0))\n" ] }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " const docs_json = {\"7cbc57c3-1296-4544-8efe-049ca6592487\":{\"version\":\"3.7.3\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Plot\",\"id\":\"p1005\",\"attributes\":{\"width\":500,\"height\":500,\"x_range\":{\"type\":\"object\",\"name\":\"Range1d\",\"id\":\"p1070\",\"attributes\":{\"start\":-86.56568860920189,\"end\":188.72941279199605}},\"y_range\":{\"type\":\"object\",\"name\":\"Range1d\",\"id\":\"p1071\",\"attributes\":{\"start\":-186.66241792445285,\"end\":88.63268347674509}},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1008\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1009\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1010\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p1048\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p1065\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[0,[170.17476752053895,-37.606710940805]],[1,[65.90700204462148,-42.38831441595548]],[2,[-43.85703180276715,26.408529079781765]],[3,[-38.76875907308431,-5.328824415126987]],[4,[59.8563390957138,-24.044421797034737]],[5,[-29.269449766268828,16.998413999037517]],[6,[34.75060972577002,-39.772973530588956]],[7,[73.4274218780106,-9.545895798447525]],[8,[78.54171812278726,-28.18204299813225]],[9,[93.87271447651337,-49.00307999776329]],[10,[-32.241793493489254,-124.43826352748954]],[11,[-54.985287318455235,9.718300518185846]],[12,[-58.39077664262223,-16.219870101457285]],[13,[-14.025878873455511,1.4386184542622522]],[14,[51.59222206384283,-36.16953131894571]],[15,[22.63929056092081,-42.339003536653784]],[16,[70.8461228575972,-16.83981304025843]],[17,[80.65142039621942,-40.95208782461016]],[18,[104.21250520042975,-55.085134293770786]],[19,[-43.04973131007231,20.093224390353324]],[20,[-68.01104333774478,16.5700628998938]],[21,[-51.68368209164269,-7.503949799097976]],[22,[-64.04740108352621,-23.349800424799515]],[23,[-25.903539172463592,2.0287773884344675]],[24,[-6.3595772830227775,1.4185384561795218]],[25,[-23.075549539156125,24.647776825980948]]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1053\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1050\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1051\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1052\"},\"data\":{\"type\":\"map\",\"entries\":[[\"k\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"100.0\",\"0.05\",\"100.0\",\"100.0\",\"0.05\",\"100.0\",\"0.05\",\"100.0\",\"0.001\",\"100.0\",\"0.001\",\"0.1\"]],[\"image\",[\"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\",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]],[\"k_r\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"10.0\",\"None\",\"10.0\",\"10.0\",\"None\",\"10.0\",\"None\",\"10.0\",\"None\",\"10.0\",\"None\",\"None\"]],[\"species\",[\"nothing\",\"protein_RNAP\",\"protein_Ribo\",\"protein_RNAase\",\"dna_mydna\",\"rna_mydna\",\"complex_dna_mydna_protein_RNAP_\",\"protein_laci\",\"complex_dna_mydna_protein_laci_2x_\",\"complex_complex_dna_mydna_protein_laci_2x__protein_RNAP_\",\"protein_GFP\",\"complex_protein_Ribo_rna_mydna_\",\"complex_complex_protein_Ribo_rna_mydna__protein_RNAase_\",\"complex_protein_RNAase_rna_mydna_\",\"dna[mydna]+protein[RNAP] <--> complex[dna[mydna]:protein[RNAP]]\",\"complex[dna[mydna]:protein[RNAP]] --> dna[mydna]+rna[mydna]+protein[RNAP]\",\"2protein[laci]+dna[mydna] <--> complex[dna[mydna]:2x_protein[laci]]\",\"complex[dna[mydna]:2x_protein[laci]]+protein[RNAP] <--> complex[complex[dna[mydna]:2x_protein[laci]]:protein[RNAP]]\",\"complex[complex[dna[mydna]:2x_protein[laci]]:protein[RNAP]] --> complex[dna[mydna]:2x_protein[laci]]+rna[mydna]+protein[RNAP]\",\"rna[mydna]+protein[Ribo] <--> complex[protein[Ribo]:rna[mydna]]\",\"complex[protein[Ribo]:rna[mydna]] --> rna[mydna]+protein[GFP]+protein[Ribo]\",\"complex[protein[Ribo]:rna[mydna]]+protein[RNAase] <--> complex[complex[protein[Ribo]:rna[mydna]]:protein[RNAase]]\",\"complex[complex[protein[Ribo]:rna[mydna]]:protein[RNAase]] --> protein[Ribo]+protein[RNAase]\",\"rna[mydna]+protein[RNAase] <--> complex[protein[RNAase]:rna[mydna]]\",\"complex[protein[RNAase]:rna[mydna]] --> protein[RNAase]\",\"rna[mydna] --> \"]],[\"color\",[\"purple\",\"green\",\"green\",\"green\",\"grey\",\"orange\",\"cyan\",\"green\",\"cyan\",\"cyan\",\"green\",\"cyan\",\"cyan\",\"cyan\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\"]],[\"type\",[\"nothing\",\"protein\",\"protein\",\"protein\",\"dna\",\"rna\",\"complex\",\"protein\",\"complex\",\"complex\",\"protein\",\"complex\",\"complex\",\"complex\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"]],[\"index\",[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1054\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1055\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1066\",\"attributes\":{\"size\":{\"type\":\"value\",\"value\":12},\"line_alpha\":{\"type\":\"value\",\"value\":0},\"fill_color\":{\"type\":\"field\",\"field\":\"color\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1060\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1057\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1058\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1059\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"color\",[\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\"]],[\"start\",[1,1,2,3,3,4,4,5,5,5,6,6,7,8,8,9,9,11,11,11,12,12,13,13,14,14,14,15,15,15,16,16,16,17,17,17,18,18,18,19,19,19,20,20,20,21,21,21,22,22,23,23,23,24,25]],[\"end\",[14,17,19,21,23,14,16,19,23,25,14,15,16,16,17,17,18,19,20,21,21,22,23,24,4,1,6,4,5,1,7,4,8,8,1,9,8,5,1,5,2,11,5,10,2,11,3,12,2,3,5,3,13,3,0]],[\"xs\",[[65.90700204462148,54.802379936545364,56.559899483384264,51.59222206384283,54.56762540978428,54.802379936545364],[65.90700204462148,77.16790777031618,76.58406445456572,80.65142039621942,76.09931797091299,77.16790777031618],[-43.85703180276715,-43.493533258862705,-46.078614408784865,-43.04973131007231,-41.1189732453641,-43.493533258862705],[-38.76875907308431,-48.2322894333704,-47.82889246322035,-51.68368209164269,-46.99848966149671,-48.2322894333704],[-38.76875907308431,-28.941774759605693,-28.421264595874344,-25.903539172463592,-30.90349718090138,-28.941774759605693],[59.8563390957138,53.56341193137557,51.96513059299879,51.59222206384283,56.0967435374464,53.56341193137557],[59.8563390957138,67.91904691390147,68.59545755064836,70.8461228575972,65.854153518698,67.91904691390147],[-29.269449766268828,-39.63479211653944,-38.27702856251242,-43.04973131007231,-39.372650931979024,-39.63479211653944],[-29.269449766268828,-26.67134166859683,-29.292551554525502,-25.903539172463592,-24.41434526680308,-26.67134166859683],[-29.269449766268828,-25.278078202527393,-23.85755355081886,-23.075549539156125,-27.743390599044535,-25.278078202527393],[34.75060972577002,48.16968583934887,47.880994507459164,51.59222206384283,46.83486871798579,48.16968583934887],[34.75060972577002,26.06328422346305,26.357210625131703,22.63929056092081,27.393557622877072,26.06328422346305],[73.4274218780106,72.01379867382664,69.93397939817348,70.8461228575972,74.64751466056214,72.01379867382664],[78.54171812278726,72.81121732547588,75.34606398053988,70.8461228575972,71.20852953470938,72.81121732547588],[78.54171812278726,80.08092841239109,77.47905349115823,80.65142039621942,82.41218572799286,80.08092841239109],[93.87271447651337,83.64078913129447,85.65005514868946,80.65142039621942,83.04955497476065,83.64078913129447],[93.87271447651337,101.19571306489107,99.21266973841335,104.21250520042975,101.7477160129787,101.19571306489107],[-54.985287318455235,-45.691269266401164,-44.677684138606146,-43.04973131007231,-47.95788983937167,-45.691269266401164],[-54.985287318455235,-64.91344753116516,-63.01491492838734,-68.01104333774478,-65.3426098638048,-64.91344753116516],[-54.985287318455235,-52.34265268636402,-54.95423653660991,-51.68368209164269,-50.0436570048915,-52.34265268636402],[-58.39077664262223,-53.818177655679875,-52.343154642155035,-51.68368209164269,-56.30571634890577,-53.818177655679875],[-58.39077664262223,-61.8720823935836,-63.31463864097695,-64.04740108352621,-59.397645678025796,-61.8720823935836],[-14.025878873455511,-22.40785149272669,-21.454684153330888,-25.903539172463592,-21.70281037917218,-22.40785149272669],[-14.025878873455511,-9.859565277216056,-10.696237563424763,-6.3595772830227775,-10.68314133379771,-9.859565277216056],[51.59222206384283,57.885149228181064,59.48343056655784,59.8563390957138,55.35181762211023,57.885149228181064],[51.59222206384283,62.69684417191895,60.93932462508005,65.90700204462148,62.931598698680034,62.69684417191895],[51.59222206384283,38.17314595026398,38.46183728215369,34.75060972577002,39.50796307162706,38.17314595026398],[22.63929056092081,56.715317318118124,57.07320027586925,59.8563390957138,54.86746462059262,56.715317318118124],[22.63929056092081,-26.964972808394908,-24.53677647854154,-29.269449766268828,-28.30002137412555,-26.964972808394908],[22.63929056092081,62.40700431759967,61.574028666563265,65.90700204462148,61.57972700899775,62.40700431759967],[70.8461228575972,72.25974606178116,74.33956533743432,73.4274218780106,69.62603007504566,72.25974606178116],[70.8461228575972,62.783415039409526,62.10700440266263,59.8563390957138,64.84830843461299,62.783415039409526],[70.8461228575972,76.57662365490857,74.04177699984457,78.54171812278726,78.17931144567507,76.57662365490857],[80.65142039621942,79.11221010661559,81.71408502784845,78.54171812278726,76.78095279101382,79.11221010661559],[80.65142039621942,69.39051467052472,69.97435798627518,65.90700204462148,70.45910446992791,69.39051467052472],[80.65142039621942,90.88334574143832,88.87407972404333,93.87271447651337,91.47457989797215,90.88334574143832],[104.21250520042975,80.95791846066322,83.339696493361,78.54171812278726,79.72228510430817,80.95791846066322],[104.21250520042975,-26.18981263522155,-24.271472626063556,-29.269449766268828,-26.647301220974757,-26.18981263522155],[104.21250520042975,69.22925395471773,70.80379452300079,65.90700204462148,69.2306511431414,69.22925395471773],[-43.04973131007231,-32.6843889598017,-34.04215251382872,-29.269449766268828,-32.946530144362114,-32.6843889598017],[-43.04973131007231,-43.41322985397676,-40.8281487040546,-43.85703180276715,-45.78778986747536,-43.41322985397676],[-43.04973131007231,-52.34374936212638,-53.3573344899214,-54.985287318455235,-50.07712878915588,-52.34374936212638],[-68.01104333774478,-32.76923585038086,-33.57167227098996,-29.269449766268828,-33.62695199483993,-32.76923585038086],[-68.01104333774478,-33.102373877217445,-35.72973622081875,-32.241793493489254,-30.883234978465975,-33.102373877217445],[-68.01104333774478,-47.09845150855955,-46.92417556762225,-43.85703180276715,-48.81032177946547,-47.09845150855955],[-51.68368209164269,-54.3263167237339,-51.71473287348801,-54.985287318455235,-56.62531240520642,-54.3263167237339],[-51.68368209164269,-42.2201517313566,-42.62354870150665,-38.76875907308431,-43.453951503230286,-42.2201517313566],[-51.68368209164269,-56.25628107858504,-57.73130409210988,-58.39077664262223,-53.76874238535915,-56.25628107858504],[-64.04740108352621,-45.173011345890984,-43.16857916620303,-43.85703180276715,-47.801689339919506,-45.173011345890984],[-64.04740108352621,-41.61870183007219,-40.84343077968608,-38.76875907308431,-43.74586687186245,-41.61870183007219],[-25.903539172463592,-28.50164727013559,-25.880437384206914,-29.269449766268828,-30.75864367192934,-28.50164727013559],[-25.903539172463592,-35.730523485942214,-36.25103364967356,-38.76875907308431,-33.768801064646524,-35.730523485942214],[-25.903539172463592,-17.521566553192415,-18.474733892588212,-14.025878873455511,-18.226607666746922,-17.521566553192415],[-6.3595772830227775,-35.34223158344864,-35.0390870229426,-38.76875907308431,-34.019974400968266,-35.34223158344864],[-23.075549539156125,166.8433628957225,165.28665675222098,170.17476752053895,166.81978961635406,166.8433628957225]]],[\"ys\",[[-42.38831441595548,-37.5641231704657,-35.601921368911164,-36.16953131894571,-40.18786118705764,-37.5641231704657],[-42.38831441595548,-41.291410363167074,-43.86011389806521,-40.95208782461016,-38.88366728963201,-41.291410363167074],[26.408529079781765,23.564973204747858,24.071398239537576,20.093224390353324,24.705401023523848,23.564973204747858],[-5.328824415126987,-6.922667837891431,-4.319519407237041,-7.503949799097976,-9.250080347626028,-6.922667837891431],[-5.328824415126987,0.2912145789155427,-2.291067364830533,2.0287773884344675,2.049269188229609,0.2912145789155427],[-24.044421797034737,-33.27740225783238,-31.183456787926065,-36.16953131894571,-33.99944231297284,-33.27740225783238],[-24.044421797034737,-18.758725862623685,-21.304620502635384,-16.83981304025843,-17.12308344021292,-18.758725862623685],[16.998413999037517,19.326288731726706,21.58362986653566,20.093224390353324,16.70514530434584,19.326288731726706],[16.998413999037517,5.443521789840166,5.704997604122185,2.0287773884344675,6.801858312883956,5.443521789840166],[16.998413999037517,21.927690892222977,19.70930846769987,24.647776825980948,22.85577798680168,21.927690892222977],[-39.772973530588956,-36.90181937157707,-39.5201715599651,-36.16953131894571,-34.6308340964023,-36.90181937157707],[-39.772973530588956,-41.61356063823202,-38.99579095051182,-42.339003536653784,-43.8872104684293,-41.61356063823202],[-9.545895798447525,-13.54033835658636,-11.92371760694649,-16.83981304025843,-13.591825915845694,-13.54033835658636],[-28.18204299813225,-19.736087152339774,-19.019384073753173,-16.83981304025843,-21.82666188500844,-19.736087152339774],[-28.18204299813225,-37.49889525882591,-37.087364261446496,-40.95208782461016,-36.27237571312031,-37.49889525882591],[-49.00307999776329,-42.77243794636033,-41.0689236555819,-40.95208782461016,-45.33945041997482,-42.77243794636033],[-49.00307999776329,-53.31060190157504,-55.044571345612866,-55.085134293770786,-50.734868294843324,-53.31060190157504],[9.718300518185846,17.797080399817457,15.365670097902662,20.093224390353324,19.139295749801022,17.797080399817457],[9.718300518185846,14.940676445101584,16.766788386833067,16.5700628998938,12.34165152029075,14.940676445101584],[9.718300518185846,-4.066544126895083,-3.7219564592697427,-7.503949799097976,-2.7805698953821256,-4.066544126895083],[-16.219870101457285,-10.277742993823487,-12.460268589805525,-7.503949799097976,-9.410989212609541,-10.277742993823487],[-16.219870101457285,-20.607905350733702,-18.403785948194212,-23.349800424799515,-21.51138407668365,-20.607905350733702],[1.4386184542622522,1.8550890303455634,4.3108135447514,2.0287773884344675,-0.6830259977298918,1.8550890303455634],[1.4386184542622522,1.427705816918458,-1.0701113006934257,1.4185384561795218,3.9298715481541118,1.427705816918458],[-36.16953131894571,-26.936550858148067,-29.030496328054376,-24.044421797034737,-26.21451080300761,-26.936550858148067],[-36.16953131894571,-40.99372256443549,-42.95592436599002,-42.38831441595548,-38.36998454784354,-40.99372256443549],[-36.16953131894571,-39.040685477957595,-36.422333289569565,-39.772973530588956,-41.31167075313236,-39.040685477957595],[-42.339003536653784,-25.588436755728377,-28.19823189253432,-24.044421797034737,-23.711057924540505,-25.588436755728377],[-42.339003536653784,14.36414257212871,15.38540328870959,16.998413999037517,12.093293348889704,14.36414257212871],[-42.339003536653784,-42.38432557625134,-44.8833778830919,-42.38831441595548,-39.8833811302036,-42.38432557625134],[-16.83981304025843,-12.845370482119595,-14.461991231759466,-9.545895798447525,-12.79388292286026,-12.845370482119595],[-16.83981304025843,-22.125508974669483,-19.579614334657784,-24.044421797034737,-23.761151397080248,-22.125508974669483],[-16.83981304025843,-25.285768886050906,-26.002471964637508,-28.18204299813225,-23.19519415338224,-25.285768886050906],[-40.95208782461016,-31.635235563916503,-32.04676656129591,-28.18204299813225,-32.861755109622095,-31.635235563916503],[-40.95208782461016,-42.048991877398564,-39.48028834250043,-42.38831441595548,-44.45673495093363,-42.048991877398564],[-40.95208782461016,-47.18272987601312,-48.88624416679154,-49.00307999776329,-44.61571740239863,-47.18272987601312],[-55.085134293770786,-30.714230970469227,-29.58895577279403,-28.18204299813225,-33.04067054118827,-30.714230970469227],[-55.085134293770786,15.335333982599677,17.14062688869784,16.998413999037517,12.741145272916015,15.335333982599677],[-55.085134293770786,-43.48951478185705,-41.37765946806884,-42.38831441595548,-46.12373362534921,-43.48951478185705],[20.093224390353324,17.765349657664135,15.508008522855183,16.998413999037517,20.386493085045,17.765349657664135],[20.093224390353324,22.93678026538723,22.430355230597513,26.408529079781765,21.796352446611237,22.93678026538723],[20.093224390353324,12.014444508721713,14.445854810636508,9.718300518185846,10.672229158738146,12.014444508721713],[16.5700628998938,16.95971819234254,14.45069315093209,16.998413999037517,19.45038755680642,16.95971819234254],[16.5700628998938,-121.0457126578426,-120.85577060623076,-124.43826352748954,-119.62637005804763,-121.0457126578426],[16.5700628998938,25.08822673149151,22.459778755222043,26.408529079781765,27.090378334925457,25.08822673149151],[-7.503949799097976,6.280894845982953,5.9363071783576125,9.718300518185846,4.994920614469995,6.280894845982953],[-7.503949799097976,-5.910106376333531,-8.51325480698792,-5.328824415126987,-3.5826938665989343,-5.910106376333531],[-7.503949799097976,-13.446076906731772,-11.263551310749737,-16.219870101457285,-14.31283068794572,-13.446076906731772],[-23.349800424799515,23.165351958180235,21.45615258286557,26.408529079781765,23.336123358756762,23.165351958180235],[-23.349800424799515,-7.360529679650442,-9.878081201661036,-5.328824415126987,-5.806734405964066,-7.360529679650442],[2.0287773884344675,13.583669597631818,13.3221937833498,16.998413999037517,12.225333074588029,13.583669597631818],[2.0287773884344675,-3.591261605608063,-1.0089796618619875,-5.328824415126987,-5.34931621492213,-3.591261605608063],[2.0287773884344675,1.6123068123511557,-0.8434177020546803,1.4386184542622522,4.15042184042661,1.6123068123511557],[1.4185384561795218,-4.615445579744949,-1.998727359725787,-5.328824415126987,-6.893766630633895,-4.615445579744949],[24.647776825980948,-36.533517935911846,-38.658553665100705,-37.606710940805,-33.89940420107721,-36.533517935911846]]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1061\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1062\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p1067\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"color\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"line_width\":{\"type\":\"value\",\"value\":4},\"line_join\":{\"type\":\"value\",\"value\":\"round\"}}},\"selection_glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p1068\",\"attributes\":{\"line_color\":{\"type\":\"value\",\"value\":\"#fdae61\"},\"line_width\":{\"type\":\"value\",\"value\":5},\"line_join\":{\"type\":\"value\",\"value\":\"round\"}}},\"hover_glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p1069\",\"attributes\":{\"line_color\":{\"type\":\"value\",\"value\":\"#abdda4\"},\"line_width\":{\"type\":\"value\",\"value\":5},\"line_join\":{\"type\":\"value\",\"value\":\"round\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesAndLinkedEdges\",\"id\":\"p1092\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"EdgesAndLinkedNodes\",\"id\":\"p1093\"}}},{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p1012\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p1029\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[0,[170.17476752053895,-37.606710940805]],[1,[65.90700204462148,-42.38831441595548]],[2,[-43.85703180276715,26.408529079781765]],[3,[-38.76875907308431,-5.328824415126987]],[4,[59.8563390957138,-24.044421797034737]],[5,[-29.269449766268828,16.998413999037517]],[6,[34.75060972577002,-39.772973530588956]],[7,[73.4274218780106,-9.545895798447525]],[8,[78.54171812278726,-28.18204299813225]],[9,[93.87271447651337,-49.00307999776329]],[10,[-32.241793493489254,-124.43826352748954]],[11,[-54.985287318455235,9.718300518185846]],[12,[-58.39077664262223,-16.219870101457285]],[13,[-14.025878873455511,1.4386184542622522]],[14,[51.59222206384283,-36.16953131894571]],[15,[22.63929056092081,-42.339003536653784]],[16,[70.8461228575972,-16.83981304025843]],[17,[80.65142039621942,-40.95208782461016]],[18,[104.21250520042975,-55.085134293770786]],[19,[-43.04973131007231,20.093224390353324]],[20,[-68.01104333774478,16.5700628998938]],[21,[-51.68368209164269,-7.503949799097976]],[22,[-64.04740108352621,-23.349800424799515]],[23,[-25.903539172463592,2.0287773884344675]],[24,[-6.3595772830227775,1.4185384561795218]],[25,[-23.075549539156125,24.647776825980948]]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1017\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1014\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1015\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1016\"},\"data\":{\"type\":\"map\",\"entries\":[[\"k\",[\"100.0\",\"0.05\",\"100.0\",\"100.0\",\"0.05\",\"100.0\",\"0.05\",\"100.0\",\"0.001\",\"100.0\",\"0.001\",\"0.1\"]],[\"k_r\",[\"10.0\",\"None\",\"10.0\",\"10.0\",\"None\",\"10.0\",\"None\",\"10.0\",\"None\",\"10.0\",\"None\",\"None\"]],[\"species\",[\"dna[mydna]+protein[RNAP] <--> complex[dna[mydna]:protein[RNAP]]\",\"complex[dna[mydna]:protein[RNAP]] --> dna[mydna]+rna[mydna]+protein[RNAP]\",\"2protein[laci]+dna[mydna] <--> complex[dna[mydna]:2x_protein[laci]]\",\"complex[dna[mydna]:2x_protein[laci]]+protein[RNAP] <--> complex[complex[dna[mydna]:2x_protein[laci]]:protein[RNAP]]\",\"complex[complex[dna[mydna]:2x_protein[laci]]:protein[RNAP]] --> complex[dna[mydna]:2x_protein[laci]]+rna[mydna]+protein[RNAP]\",\"rna[mydna]+protein[Ribo] <--> complex[protein[Ribo]:rna[mydna]]\",\"complex[protein[Ribo]:rna[mydna]] --> rna[mydna]+protein[GFP]+protein[Ribo]\",\"complex[protein[Ribo]:rna[mydna]]+protein[RNAase] <--> complex[complex[protein[Ribo]:rna[mydna]]:protein[RNAase]]\",\"complex[complex[protein[Ribo]:rna[mydna]]:protein[RNAase]] --> protein[Ribo]+protein[RNAase]\",\"rna[mydna]+protein[RNAase] <--> complex[protein[RNAase]:rna[mydna]]\",\"complex[protein[RNAase]:rna[mydna]] --> protein[RNAase]\",\"rna[mydna] --> \"]],[\"color\",[\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\"]],[\"type\",[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"]],[\"index\",[14,15,16,17,18,19,20,21,22,23,24,25]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1018\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1019\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1072\",\"attributes\":{\"size\":{\"type\":\"value\",\"value\":8},\"fill_color\":{\"type\":\"field\",\"field\":\"color\"},\"marker\":{\"type\":\"value\",\"value\":\"square\"}}},\"selection_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1073\",\"attributes\":{\"size\":{\"type\":\"value\",\"value\":8},\"fill_color\":{\"type\":\"value\",\"value\":\"#fdae61\"},\"marker\":{\"type\":\"value\",\"value\":\"square\"}}},\"hover_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1074\",\"attributes\":{\"size\":{\"type\":\"value\",\"value\":8},\"fill_color\":{\"type\":\"value\",\"value\":\"#abdda4\"},\"marker\":{\"type\":\"value\",\"value\":\"square\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1024\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1021\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1022\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1023\"},\"data\":{\"type\":\"map\",\"entries\":[[\"start\",[]],[\"end\",[]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1025\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1026\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p1020\"}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p1027\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p1028\"}}},{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p1030\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p1047\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[0,[170.17476752053895,-37.606710940805]],[1,[65.90700204462148,-42.38831441595548]],[2,[-43.85703180276715,26.408529079781765]],[3,[-38.76875907308431,-5.328824415126987]],[4,[59.8563390957138,-24.044421797034737]],[5,[-29.269449766268828,16.998413999037517]],[6,[34.75060972577002,-39.772973530588956]],[7,[73.4274218780106,-9.545895798447525]],[8,[78.54171812278726,-28.18204299813225]],[9,[93.87271447651337,-49.00307999776329]],[10,[-32.241793493489254,-124.43826352748954]],[11,[-54.985287318455235,9.718300518185846]],[12,[-58.39077664262223,-16.219870101457285]],[13,[-14.025878873455511,1.4386184542622522]],[14,[51.59222206384283,-36.16953131894571]],[15,[22.63929056092081,-42.339003536653784]],[16,[70.8461228575972,-16.83981304025843]],[17,[80.65142039621942,-40.95208782461016]],[18,[104.21250520042975,-55.085134293770786]],[19,[-43.04973131007231,20.093224390353324]],[20,[-68.01104333774478,16.5700628998938]],[21,[-51.68368209164269,-7.503949799097976]],[22,[-64.04740108352621,-23.349800424799515]],[23,[-25.903539172463592,2.0287773884344675]],[24,[-6.3595772830227775,1.4185384561795218]],[25,[-23.075549539156125,24.647776825980948]]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1035\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1032\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1033\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1034\"},\"data\":{\"type\":\"map\",\"entries\":[[\"image\",[\"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\",null,null,null,null,null,null,null,null,null,null,null,null,null]],[\"color\",[\"purple\",\"green\",\"green\",\"green\",\"grey\",\"orange\",\"cyan\",\"green\",\"cyan\",\"cyan\",\"green\",\"cyan\",\"cyan\",\"cyan\"]],[\"type\",[\"nothing\",\"protein\",\"protein\",\"protein\",\"dna\",\"rna\",\"complex\",\"protein\",\"complex\",\"complex\",\"protein\",\"complex\",\"complex\",\"complex\"]],[\"species\",[\"nothing\",\"protein_RNAP\",\"protein_Ribo\",\"protein_RNAase\",\"dna_mydna\",\"rna_mydna\",\"complex_dna_mydna_protein_RNAP_\",\"protein_laci\",\"complex_dna_mydna_protein_laci_2x_\",\"complex_complex_dna_mydna_protein_laci_2x__protein_RNAP_\",\"protein_GFP\",\"complex_protein_Ribo_rna_mydna_\",\"complex_complex_protein_Ribo_rna_mydna__protein_RNAase_\",\"complex_protein_RNAase_rna_mydna_\"]],[\"index\",[0,1,2,3,4,5,6,7,8,9,10,11,12,13]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1036\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1037\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1075\",\"attributes\":{\"size\":{\"type\":\"value\",\"value\":12},\"fill_color\":{\"type\":\"field\",\"field\":\"color\"}}},\"selection_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1076\",\"attributes\":{\"size\":{\"type\":\"value\",\"value\":15},\"fill_color\":{\"type\":\"value\",\"value\":\"#fdae61\"}}},\"hover_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1077\",\"attributes\":{\"size\":{\"type\":\"value\",\"value\":15},\"fill_color\":{\"type\":\"value\",\"value\":\"#abdda4\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1042\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1039\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1040\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1041\"},\"data\":{\"type\":\"map\",\"entries\":[[\"start\",[]],[\"end\",[]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1043\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1044\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p1038\"}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p1045\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p1046\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1011\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p1078\",\"attributes\":{\"renderers\":[{\"id\":\"p1048\"}],\"tooltips\":null}},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p1079\",\"attributes\":{\"renderers\":[{\"id\":\"p1030\"}],\"tooltips\":[[\"name\",\"@species\"],[\"type\",\"@type\"]],\"attachment\":\"right\"}},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p1080\",\"attributes\":{\"renderers\":[{\"id\":\"p1012\"}],\"tooltips\":[[\"reaction\",\"@species\"],[\"type\",\"@type\"],[\"k_f\",\"@k\"],[\"k_r\",\"@k_r\"]],\"attachment\":\"right\"}},{\"type\":\"object\",\"name\":\"TapTool\",\"id\":\"p1081\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"BoxSelectTool\",\"id\":\"p1082\",\"attributes\":{\"renderers\":\"auto\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1083\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"editable\":true,\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p1089\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p1088\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1090\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1091\",\"attributes\":{\"renderers\":\"auto\"}}]}}}}]}};\n", " const render_items = [{\"docid\":\"7cbc57c3-1296-4544-8efe-049ca6592487\",\"roots\":{\"p1005\":\"ab28b627-c392-4c36-92c5-99095af8cf2f\"},\"root_ids\":[\"p1005\"]}];\n", " void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " let attempts = 0;\n", " const timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p1005" } }, "output_type": "display_data" } ], "source": [ "from biocrnpyler.utils.plotting import render_network_bokeh\n", "try:\n", " from bokeh.models import (Plot , Range1d)\n", " import bokeh.plotting\n", " import bokeh.io\n", " bokeh.io.output_notebook() #this makes the graph appear in line with the notebook\n", " plot = render_network_bokeh(crn1)\n", " bokeh.io.show(plot) #if you don't type this the plot won't show\n", "except ModuleNotFoundError:\n", " print('please install the plotting libraries: pip install biocrnpyler[all]')\n", "\n", "\n", "#mouse over nodes to get a tooltip telling you what they are\n", "#mouse over single lines to outline them\n", "#click on nodes to highlight all edges that touch them\n", "#use the magnifying glass symbol to zoom in and out\n", "#click and drag to move around\n", "\n", "#NOTE: this function is not deterministic in how it displays the network, \n", "# because it uses randomness to push the nodes around. However, it does always get the same seed\n", "# so if you don't change the network it will end up always looking the same. To set the seed use rseed=" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Advanced options for generate_networkx_graph\n", "The following options are useful changing how plotting works.\n", "\n", "To get better control over the way reactions and species text is display using the following keywords (default values shown below):\n", "\n", " use_pretty_print=False\n", " pp_show_rates=True\n", " pp_show_attributes=True\n", " pp_show_material=True\n", "\n", "To get better control over the colors of different nodes, use the keywords to set a species' color.\n", "The higher keywords will take precedence.\n", "\n", " repr(species): \"color\"\n", " species.name: \"color\"\n", " (species.material_type, tuple(specie.attributes)): \"color\"\n", " species.material_type: \"color\"\n", " tuple(species.attributes): \"color\"\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "tags": [] }, "outputs": [ { "data": { "text/html": [ " \n", "
\n", " \n", " Loading BokehJS ...\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "'use strict';\n", "(function(root) {\n", " function now() {\n", " return new Date();\n", " }\n", "\n", " const force = true;\n", "\n", " if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n", " root._bokeh_onload_callbacks = [];\n", " root._bokeh_is_loading = undefined;\n", " }\n", "\n", "const JS_MIME_TYPE = 'application/javascript';\n", " const HTML_MIME_TYPE = 'text/html';\n", " const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n", " const CLASS_NAME = 'output_bokeh rendered_html';\n", "\n", " /**\n", " * Render data to the DOM node\n", " */\n", " function render(props, node) {\n", " const script = document.createElement(\"script\");\n", " node.appendChild(script);\n", " }\n", "\n", " /**\n", " * Handle when an output is cleared or removed\n", " */\n", " function handleClearOutput(event, handle) {\n", " function drop(id) {\n", " const view = Bokeh.index.get_by_id(id)\n", " if (view != null) {\n", " view.model.document.clear()\n", " Bokeh.index.delete(view)\n", " }\n", " }\n", "\n", " const cell = handle.cell;\n", "\n", " const id = cell.output_area._bokeh_element_id;\n", " const server_id = cell.output_area._bokeh_server_id;\n", "\n", " // Clean up Bokeh references\n", " if (id != null) {\n", " drop(id)\n", " }\n", "\n", " if (server_id !== undefined) {\n", " // Clean up Bokeh references\n", " const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n", " cell.notebook.kernel.execute(cmd_clean, {\n", " iopub: {\n", " output: function(msg) {\n", " const id = msg.content.text.trim()\n", " drop(id)\n", " }\n", " }\n", " });\n", " // Destroy server and session\n", " const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n", " cell.notebook.kernel.execute(cmd_destroy);\n", " }\n", " }\n", "\n", " /**\n", " * Handle when a new output is added\n", " */\n", " function handleAddOutput(event, handle) {\n", " const output_area = handle.output_area;\n", " const output = handle.output;\n", "\n", " // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n", " if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n", " return\n", " }\n", "\n", " const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n", "\n", " if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n", " toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n", " // store reference to embed id on output_area\n", " output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n", " }\n", " if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n", " const bk_div = document.createElement(\"div\");\n", " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", " const script_attrs = bk_div.children[0].attributes;\n", " for (let i = 0; i < script_attrs.length; i++) {\n", " toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n", " toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n", " }\n", " // store reference to server id on output_area\n", " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n", " }\n", " }\n", "\n", " function register_renderer(events, OutputArea) {\n", "\n", " function append_mime(data, metadata, element) {\n", " // create a DOM node to render to\n", " const toinsert = this.create_output_subarea(\n", " metadata,\n", " CLASS_NAME,\n", " EXEC_MIME_TYPE\n", " );\n", " this.keyboard_manager.register_events(toinsert);\n", " // Render to node\n", " const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n", " render(props, toinsert[toinsert.length - 1]);\n", " element.append(toinsert);\n", " return toinsert\n", " }\n", "\n", " /* Handle when an output is cleared or removed */\n", " events.on('clear_output.CodeCell', handleClearOutput);\n", " events.on('delete.Cell', handleClearOutput);\n", "\n", " /* Handle when a new output is added */\n", " events.on('output_added.OutputArea', handleAddOutput);\n", "\n", " /**\n", " * Register the mime type and append_mime function with output_area\n", " */\n", " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n", " /* Is output safe? */\n", " safe: true,\n", " /* Index of renderer in `output_area.display_order` */\n", " index: 0\n", " });\n", " }\n", "\n", " // register the mime type if in Jupyter Notebook environment and previously unregistered\n", " if (root.Jupyter !== undefined) {\n", " const events = require('base/js/events');\n", " const OutputArea = require('notebook/js/outputarea').OutputArea;\n", "\n", " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n", " register_renderer(events, OutputArea);\n", " }\n", " }\n", " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n", " root._bokeh_timeout = Date.now() + 5000;\n", " root._bokeh_failed_load = false;\n", " }\n", "\n", " const NB_LOAD_WARNING = {'data': {'text/html':\n", " \"
\\n\"+\n", " \"

\\n\"+\n", " \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n", " \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n", " \"

\\n\"+\n", " \"
    \\n\"+\n", " \"
  • re-rerun `output_notebook()` to attempt to load from CDN again, or
  • \\n\"+\n", " \"
  • use INLINE resources instead, as so:
  • \\n\"+\n", " \"
\\n\"+\n", " \"\\n\"+\n", " \"from bokeh.resources import INLINE\\n\"+\n", " \"output_notebook(resources=INLINE)\\n\"+\n", " \"\\n\"+\n", " \"
\"}};\n", "\n", " function display_loaded(error = null) {\n", " const el = document.getElementById(\"bde57ac8-5b12-4730-9183-55d5fd25fd99\");\n", " if (el != null) {\n", " const html = (() => {\n", " if (typeof root.Bokeh === \"undefined\") {\n", " if (error == null) {\n", " return \"BokehJS is loading ...\";\n", " } else {\n", " return \"BokehJS failed to load.\";\n", " }\n", " } else {\n", " const prefix = `BokehJS ${root.Bokeh.version}`;\n", " if (error == null) {\n", " return `${prefix} successfully loaded.`;\n", " } else {\n", " return `${prefix} encountered errors while loading and may not function as expected.`;\n", " }\n", " }\n", " })();\n", " el.innerHTML = html;\n", "\n", " if (error != null) {\n", " const wrapper = document.createElement(\"div\");\n", " wrapper.style.overflow = \"auto\";\n", " wrapper.style.height = \"5em\";\n", " wrapper.style.resize = \"vertical\";\n", " const content = document.createElement(\"div\");\n", " content.style.fontFamily = \"monospace\";\n", " content.style.whiteSpace = \"pre-wrap\";\n", " content.style.backgroundColor = \"rgb(255, 221, 221)\";\n", " content.textContent = error.stack ?? error.toString();\n", " wrapper.append(content);\n", " el.append(wrapper);\n", " }\n", " } else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(() => display_loaded(error), 100);\n", " }\n", " }\n", "\n", " function run_callbacks() {\n", " try {\n", " root._bokeh_onload_callbacks.forEach(function(callback) {\n", " if (callback != null)\n", " callback();\n", " });\n", " } finally {\n", " delete root._bokeh_onload_callbacks\n", " }\n", " console.debug(\"Bokeh: all callbacks have finished\");\n", " }\n", "\n", " function load_libs(css_urls, js_urls, callback) {\n", " if (css_urls == null) css_urls = [];\n", " if (js_urls == null) js_urls = [];\n", "\n", " root._bokeh_onload_callbacks.push(callback);\n", " if (root._bokeh_is_loading > 0) {\n", " console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n", " return null;\n", " }\n", " if (js_urls == null || js_urls.length === 0) {\n", " run_callbacks();\n", " return null;\n", " }\n", " console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", " root._bokeh_is_loading = css_urls.length + js_urls.length;\n", "\n", " function on_load() {\n", " root._bokeh_is_loading--;\n", " if (root._bokeh_is_loading === 0) {\n", " console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n", " run_callbacks()\n", " }\n", " }\n", "\n", " function on_error(url) {\n", " console.error(\"failed to load \" + url);\n", " }\n", "\n", " for (let i = 0; i < css_urls.length; i++) {\n", " const url = css_urls[i];\n", " const element = document.createElement(\"link\");\n", " element.onload = on_load;\n", " element.onerror = on_error.bind(null, url);\n", " element.rel = \"stylesheet\";\n", " element.type = \"text/css\";\n", " element.href = url;\n", " console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n", " document.body.appendChild(element);\n", " }\n", "\n", " for (let i = 0; i < js_urls.length; i++) {\n", " const url = js_urls[i];\n", " const element = document.createElement('script');\n", " element.onload = on_load;\n", " element.onerror = on_error.bind(null, url);\n", " element.async = false;\n", " element.src = url;\n", " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", " document.head.appendChild(element);\n", " }\n", " };\n", "\n", " function inject_raw_css(css) {\n", " const element = document.createElement(\"style\");\n", " element.appendChild(document.createTextNode(css));\n", " document.body.appendChild(element);\n", " }\n", "\n", " const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.3.min.js\"];\n", " const css_urls = [];\n", "\n", " const inline_js = [ function(Bokeh) {\n", " Bokeh.set_log_level(\"info\");\n", " },\n", "function(Bokeh) {\n", " }\n", " ];\n", "\n", " function run_inline_js() {\n", " if (root.Bokeh !== undefined || force === true) {\n", " try {\n", " for (let i = 0; i < inline_js.length; i++) {\n", " inline_js[i].call(root, root.Bokeh);\n", " }\n", "\n", " } catch (error) {display_loaded(error);throw error;\n", " }if (force === true) {\n", " display_loaded();\n", " }} else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(run_inline_js, 100);\n", " } else if (!root._bokeh_failed_load) {\n", " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n", " root._bokeh_failed_load = true;\n", " } else if (force !== true) {\n", " const cell = $(document.getElementById(\"bde57ac8-5b12-4730-9183-55d5fd25fd99\")).parents('.cell').data().cell;\n", " cell.output_area.append_execute_result(NB_LOAD_WARNING)\n", " }\n", " }\n", "\n", " if (root._bokeh_is_loading === 0) {\n", " console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n", " run_inline_js();\n", " } else {\n", " load_libs(css_urls, js_urls, function() {\n", " console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n", " run_inline_js();\n", " });\n", " }\n", "}(window));" ], "application/vnd.bokehjs_load.v0+json": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\n\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"
    \\n\"+\n \"
  • re-rerun `output_notebook()` to attempt to load from CDN again, or
  • \\n\"+\n \"
  • use INLINE resources instead, as so:
  • \\n\"+\n \"
\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(\"bde57ac8-5b12-4730-9183-55d5fd25fd99\");\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.3.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {display_loaded(error);throw error;\n }if (force === true) {\n display_loaded();\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(\"bde57ac8-5b12-4730-9183-55d5fd25fd99\")).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " const docs_json = {\"e1d045ae-6174-4521-84e5-60b4fe46f0bc\":{\"version\":\"3.7.3\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Plot\",\"id\":\"p1096\",\"attributes\":{\"width\":500,\"height\":500,\"x_range\":{\"type\":\"object\",\"name\":\"Range1d\",\"id\":\"p1161\",\"attributes\":{\"start\":-65.09999998935632,\"end\":65.09999956360886}},\"y_range\":{\"type\":\"object\",\"name\":\"Range1d\",\"id\":\"p1162\",\"attributes\":{\"start\":-65.0999988256372,\"end\":65.10000072732798}},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1099\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1100\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1101\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p1139\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p1156\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[0,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3LZt/P//SECjTiYhs+evPg==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VfyaWTOGRkD5J2dZtrE1QA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[2,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"n6ozWKssP0AphJTCuItDQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[3,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"eIhEcYlAJkBdPjzmiV9IQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[4,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Da2NTYlAJsBdPjzmiV9IQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[5,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"5zxYX6ssP8AphJTCuItDQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[6,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"eUUtXTOGRsD2J2eLtrE1QA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[7,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAAScBF7RcxBrHMvg==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[8,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"eUUtXTOGRsDYdH85trE1wA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[9,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8TxYyaosP8CVqqDkuItDwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[10,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Bq2NsYlAJsDMZEjWiV9IwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[11,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"cYhE1YlAJkDMZEjWiV9IwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[12,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qqozwqosP0CVqqDkuItDwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[13,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VfyaWTOGRkDYdH85trE1wA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[14,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACAQUCNseMQnyOnPg==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[15,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"sneTZpZPPkCoDLAFAIAxQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[16,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"58Jh9P9/MUBuwWGJlk8+QA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[17,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"i1tnAa/Oq77lJOf//39BQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[18,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VLdaEQCAMcB6wWFmlk8+QA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[19,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"MWwMT5ZPPsCcDLAoAIAxQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[20,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QHo89P9/QcByjyZ99eHDvg==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[21,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"JWwMcpZPPsCdbQzd/38xwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[22,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"cbfauf9/McBeIj5ylk8+wA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[23,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AE3R0B3Esj5cVVX0/39BwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[24,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8sJh0f9/MUBeIj5ylk8+wA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[25,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vneTQ5ZPPkB1bYxXAIAxwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1144\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1141\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1142\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1143\"},\"data\":{\"type\":\"map\",\"entries\":[[\"k\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"100.0\",\"0.05\",\"100.0\",\"100.0\",\"0.05\",\"100.0\",\"0.05\",\"100.0\",\"0.001\",\"100.0\",\"0.001\",\"0.1\"]],[\"image\",[\"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\",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]],[\"k_r\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"10.0\",\"None\",\"10.0\",\"10.0\",\"None\",\"10.0\",\"None\",\"10.0\",\"None\",\"10.0\",\"None\",\"None\"]],[\"species\",[\"nothing\",\"protein[RNAP in default.]\",\"protein[Ribo in default.]\",\"protein[RNAase in default.]\",\"dna[mydna in default.]\",\"rna[mydna in default.]\",\"complex[dna[mydna]:protein[RNAP] in default.]\",\"protein[laci in default.]\",\"complex[dna[mydna]:2x_protein[laci] in default.]\",\"complex[complex[dna[mydna]:2x_protein[laci]]:protein[RNAP] in default.]\",\"protein[GFP in default.]\",\"complex[protein[Ribo]:rna[mydna] in default.]\",\"complex[complex[protein[Ribo]:rna[mydna]]:protein[RNAase] in default.]\",\"complex[protein[RNAase]:rna[mydna] in default.]\",\"dna[mydna]+protein[RNAP] <--> complex[dna[mydna]:protein[RNAP]]\",\"complex[dna[mydna]:protein[RNAP]] --> dna[mydna]+rna[mydna]+protein[RNAP]\",\"2protein[laci]+dna[mydna] <--> complex[dna[mydna]:2x_protein[laci]]\",\"complex[dna[mydna]:2x_protein[laci]]+protein[RNAP] <--> complex[complex[dna[mydna]:2x_protein[laci]]:protein[RNAP]]\",\"complex[complex[dna[mydna]:2x_protein[laci]]:protein[RNAP]] --> complex[dna[mydna]:2x_protein[laci]]+rna[mydna]+protein[RNAP]\",\"rna[mydna]+protein[Ribo] <--> complex[protein[Ribo]:rna[mydna]]\",\"complex[protein[Ribo]:rna[mydna]] --> rna[mydna]+protein[GFP]+protein[Ribo]\",\"complex[protein[Ribo]:rna[mydna]]+protein[RNAase] <--> complex[complex[protein[Ribo]:rna[mydna]]:protein[RNAase]]\",\"complex[complex[protein[Ribo]:rna[mydna]]:protein[RNAase]] --> protein[Ribo]+protein[RNAase]\",\"rna[mydna]+protein[RNAase] <--> complex[protein[RNAase]:rna[mydna]]\",\"complex[protein[RNAase]:rna[mydna]] --> protein[RNAase]\",\"rna[mydna] --> \"]],[\"color\",[null,\"blue\",\"blue\",\"blue\",\"grey\",\"grey\",\"grey\",\"blue\",\"grey\",\"grey\",\"lightgreen\",\"grey\",\"grey\",\"grey\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\"]],[\"type\",[\"nothing\",\"protein\",\"protein\",\"protein\",\"dna\",\"rna\",\"complex\",\"protein\",\"complex\",\"complex\",\"protein\",\"complex\",\"complex\",\"complex\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"]],[\"index\",[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1145\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1146\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1157\",\"attributes\":{\"size\":{\"type\":\"value\",\"value\":12},\"line_alpha\":{\"type\":\"value\",\"value\":0},\"fill_color\":{\"type\":\"field\",\"field\":\"color\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1151\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1148\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1149\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1150\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"color\",[\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\",\"gray\"]],[\"start\",[1,1,2,3,3,4,4,5,5,5,6,6,7,8,8,9,9,11,11,11,12,12,13,13,14,14,14,15,15,15,16,16,16,17,17,17,18,18,18,19,19,19,20,20,20,21,21,21,22,22,23,23,23,24,25]],[\"end\",[14,17,19,21,23,14,16,19,23,25,14,15,16,16,17,17,18,19,20,21,21,22,23,24,4,1,6,4,5,1,7,4,8,8,1,9,8,5,1,5,2,11,5,10,2,11,3,12,2,3,5,3,13,3,0]],[\"xs\",[[45.04844207828197,36.47101552436898,34.55143531504556,35.0,39.08838415199679,36.47101552436898],[45.04844207828197,3.3566412354622943,4.8609384505801945,-8.287238440440713e-07,3.444595031962495,3.3566412354622943],[31.17448951016797,-27.008585404646286,-27.05367406077198,-30.31088728001868,-25.39702245630113,-27.008585404646286],[11.126048602691512,-28.454832130127112,-30.134135990741516,-30.310889366181204,-25.89509212076154,-28.454832130127112],[11.126048602691512,0.4609402448853077,-1.9079596866970336,1.1185455293286181e-06,3.048490475240815,0.4609402448853077],[-11.12604753832286,32.59439889391652,30.207940836249687,35.0,33.839740108778194,32.59439889391652],[-11.12604753832286,14.557420814382612,12.505892148704067,17.499999307506098,15.213112958666205,14.557420814382612],[-31.174489935915428,-30.450765665542455,-32.98194457721042,-30.31088728001868,-27.985939226552496,-30.450765665542455],[-31.174489935915428,-1.35738610239361,-3.9836626936878154,1.1185455293286181e-06,0.6250025990484309,-1.35738610239361],[-31.174489935915428,27.735650574342003,25.431811368101048,30.310886596205584,28.817905208096864,27.735650574342003],[-45.04844250402943,31.621861130435043,30.16669381946541,35.0,31.474580241806308,31.621861130435043],[-45.04844250402943,26.81629688475463,25.848527830184906,30.31088868236811,26.12637732715131,26.81629688475463],[-50.0,14.307140289239173,14.573970895316076,17.499999307506098,12.525750518206404,14.307140289239173],[-45.04844250402943,14.8087163252259,15.76870852229495,17.499999307506098,12.572091717210398,14.8087163252259],[-45.04844250402943,-2.1773763338779184,-0.7364743910948661,-8.287238440440713e-07,-4.651134412185403,-2.1773763338779184],[-31.174480995218747,-1.3573875622476173,0.6250014012870462,-8.287238440440713e-07,-3.983664184424923,-1.3573875622476173],[-31.174480995218747,-18.176603365369868,-15.88423744570998,-17.500001034400455,-20.789921214174583,-18.176603365369868],[11.126051582923738,-28.454830067675122,-25.895090053339715,-30.31088728001868,-30.134133944506647,-28.454830067675122],[11.126051582923738,-32.59439732559292,-30.207939340740687,-34.999998597650574,-33.83973838890879,-32.59439732559292],[11.126051582923738,-27.516359584960654,-25.348359746720504,-30.310889366181204,-28.35875103658714,-27.516359584960654],[31.174480569471292,-27.008587675069073,-25.39702439563394,-30.310889366181204,-27.053676749690126,-27.008587675069073],[31.174480569471292,-14.055592371201694,-12.794825055441105,-17.49999581899414,-13.68247833491584,-14.055592371201694],[45.04844207828197,3.356643160512682,3.4445968980108046,1.1185455293286181e-06,4.8609404240929,3.356643160512682],[45.04844207828197,20.84040729839012,20.88637892121101,17.49999722134357,22.378986909418547,20.84040729839012],[35.0,-8.720446432239378,-6.333988374572546,-11.12604753832286,-9.965787647101056,-8.720446432239378],[35.0,43.57742655391299,45.49700676323641,45.04844207828197,40.96005792628518,43.57742655391299],[35.0,-41.670303634464474,-40.21513632349484,-45.04844250402943,-41.52302274583574,-41.670303634464474],[30.31088868236811,-8.331517855820593,-6.163517947484525,-11.12604753832286,-9.173909424370837,-8.331517855820593],[30.31088868236811,-27.872188084791333,-26.260625092875358,-31.174489935915428,-27.917276795990233,-27.872188084791333],[30.31088868236811,41.68211202850242,41.56799606938435,45.04844207828197,40.19938139965951,41.68211202850242],[17.499999307506098,-46.80714098173308,-47.07397158780998,-50.0,-45.02575121070031,-46.80714098173308],[17.499999307506098,-8.183469045199374,-6.131940379520829,-11.12604753832286,-8.839161189482969,-8.183469045199374],[17.499999307506098,-42.35715952174923,-43.31715171881828,-45.04844250402943,-40.12053491373373,-42.35715952174923],[-8.287238440440713e-07,-42.87106699887536,-44.31196894165841,-45.04844250402943,-40.39730892056787,-42.87106699887536],[-8.287238440440713e-07,41.69180001409583,40.18750279897793,45.04844207828197,41.60384621759563,41.69180001409583],[-8.287238440440713e-07,-29.817094261694972,-31.799483225229636,-31.174480995218747,-27.190817639517668,-29.817094261694972],[-17.500001034400455,-43.410076370788836,-45.230672733364784,-45.04844250402943,-40.812307440161405,-43.410076370788836],[-17.500001034400455,-28.229380550425887,-26.180062797985336,-31.174489935915428,-28.881661231680035,-28.229380550425887],[-17.500001034400455,41.581188104380175,40.41764892095719,45.04844207828197,41.100006599116746,41.581188104380175],[-30.31088728001868,-31.03461155039165,-28.503432638723687,-31.174489935915428,-33.49943798938161,-31.03461155039165],[-30.31088728001868,27.872187634795576,27.917276290921272,31.17448951016797,26.26062468645042,27.872187634795576],[-30.31088728001868,9.26999437058018,6.710254356244771,11.126051582923738,10.949298247411706,9.26999437058018],[-34.999998597650574,-31.515372186013213,-29.10810781576563,-31.174489935915428,-34.084336879733456,-31.515372186013213],[-34.999998597650574,-12.665491129217894,-15.275804507886232,-11.126050518555086,-10.785424176228,-12.665491129217894],[-34.999998597650574,28.161016756809815,28.71782918852706,31.17448951016797,26.174738523179162,28.161016756809815],[-30.310889366181204,8.331521801703186,6.163521963463037,11.126051582923738,9.173913253329674,8.331521801703186],[-30.310889366181204,9.26999136663742,10.949295227251822,11.126048602691512,6.710251357271849,9.26999136663742],[-30.310889366181204,27.872178878359158,26.26061559892403,31.174480569471292,27.917267952980215,27.872178878359158],[-17.49999581899414,29.164801716247545,30.734939457806114,31.17448951016797,26.64135189621384,29.164801716247545],[-17.49999581899414,9.934436544246411,12.002457980526941,11.126048602691512,7.30116404180087,9.934436544246411],[1.1185455293286181e-06,-29.81710271497629,-27.190826123682083,-31.174489935915428,-31.79949141641833,-29.81710271497629],[1.1185455293286181e-06,10.665109476351732,13.034009407934073,11.126048602691512,8.077559245996227,10.665109476351732],[1.1185455293286181e-06,41.69180003631482,41.6038462988167,45.04844207828197,40.187502772734604,41.69180003631482],[17.49999722134357,11.407321412465002,13.965947484024255,11.126048602691512,8.982119431809256,11.407321412465002],[30.310886596205584,47.38397277556787,48.4243396786069,49.99999957425254,45.10267185663589,47.38397277556787]]],[\"ys\",[[21.69418867844067,3.175864875466151,4.979839012619591,6.896002860113767e-07,2.878388263521048,3.175864875466151],[21.69418867844067,34.00855959539319,36.17101208183843,34.99999998842558,31.375809133001084,34.00855959539319],[39.09157593013544,18.65965854830505,21.293491853704886,17.500002425175452,16.575917746030036,18.65965854830505],[48.74639585439284,-14.532667207745112,-12.503123068961672,-17.499997916731093,-15.154633406181802,-14.532667207745112],[48.74639585439284,-31.53048349586851,-30.37834462329549,-34.999998609225,-31.03682908949517,-31.53048349586851],[48.74639585439284,2.542260180370244,1.426944616710476,6.896002860113767e-07,4.863517625401165,2.542260180370244],[48.74639585439284,32.205945323929704,30.553570971234812,30.310890756956205,34.757254532839795,32.205945323929704],[39.09157593013544,20.997206170635998,21.72675684377121,17.500002425175452,21.92658310880518,20.997206170635998],[39.09157593013544,-31.773932904309632,-31.97833968884658,-34.999998609225,-30.039215087504953,-31.773932904309632],[39.09157593013544,-15.129739530302864,-16.407016234596686,-17.500005218299936,-12.728107631934428,-15.129739530302864],[21.6941916586729,0.9155211852389147,-1.2802927787912919,6.896002860113767e-07,3.545619892015787,0.9155211852389147],[21.6941916586729,17.694494986889406,15.244488063519217,17.500000339012928,20.2367620601099,17.694494986889406],[-3.4202934180418097e-06,28.877136492979435,26.25646629335391,30.310890756956205,30.81769346230666,28.877136492979435],[-21.694186776749888,28.073258993397015,25.620194410245734,30.310890756956205,29.46488438493173,28.073258993397015],[-21.694186776749888,32.259737973662205,30.05453674501465,34.99999998842558,33.165073180949044,32.259737973662205],[-39.09157998890911,31.7739340784272,30.039216561134943,34.99999998842558,31.978340466168905,31.7739340784272],[-39.09157998890911,26.87691003286846,25.579154525106492,30.31088867079368,26.545729283634223,26.87691003286846],[-48.74639395270205,14.532671701358598,15.15463787934162,17.500002425175452,12.50312757599368,14.532671701358598],[-48.74639395270205,-2.5422617039145052,-1.426945984452235,-2.3701968327616378e-06,-4.863519230248874,-2.5422617039145052],[-48.74639395270205,-19.60727181963774,-18.110980548215185,-17.499997916731093,-22.10316594995883,-19.60727181963774],[-39.09157998890911,-18.659654564570424,-16.57591401836009,-17.499997916731093,-21.293487862805993,-18.659654564570424],[-39.09157998890911,-30.93224667338795,-28.61933149053872,-30.310889377755636,-33.53990784452793,-30.93224667338795],[-21.694186776749888,-34.00855814096754,-31.375807676604314,-34.999998609225,-36.171010593700245,-34.00855814096754],[-21.694186776749888,-29.26606378601036,-26.63224574418593,-30.310889377755636,-31.404260139966716,-29.26606378601036],[6.896002860113767e-07,46.20413636362288,47.31945192728265,48.74639585439284,43.882878918591956,46.20413636362288],[6.896002860113767e-07,18.518324492574806,16.714350355421367,21.69418867844067,18.81580110451991,18.518324492574806],[6.896002860113767e-07,20.77867116303427,22.97448512706448,21.6941916586729,18.148572456257398,20.77867116303427],[17.500000339012928,46.63912182057242,48.135412990431895,48.74639585439284,44.143227729714376,46.63912182057242],[17.500000339012928,37.93191973795503,40.01566050653241,39.09157593013544,35.29808643349799,37.93191973795503],[17.500000339012928,20.73615840963328,18.104412142338653,21.69418867844067,22.913455070595163,20.73615840963328],[30.310890756956205,1.4337508436833517,4.054421043308875,-3.4202934180418097e-06,-0.5068061256438745,1.4337508436833517],[30.310890756956205,46.85134128741934,48.50371564011423,48.74639585439284,44.30003207850925,46.85134128741934],[30.310890756956205,-19.4565550131907,-17.003490430039417,-21.694186776749888,-20.848180404725415,-19.4565550131907],[34.99999998842558,-18.95392476198651,-16.74872353333896,-21.694186776749888,-19.85925996927335,-18.95392476198651],[34.99999998842558,22.685629071473063,20.523176585027826,21.69418867844067,25.318379533865166,22.685629071473063],[34.99999998842558,-35.865514078910735,-34.130796561618475,-39.09157998890911,-36.06992046665244,-35.865514078910735],[30.31088867079368,-18.60133107150752,-16.697508665892997,-21.694186776749888,-19.03803171337956,-18.60133107150752],[30.31088867079368,37.20045702654915,38.85557261679554,39.09157593013544,34.64827349466762,37.20045702654915],[30.31088867079368,22.17183905315236,19.80851778083579,21.69418867844067,24.761737743552636,22.17183905315236],[17.500002425175452,35.594372184674896,34.86482151153969,39.09157593013544,34.66499524650571,35.594372184674896],[17.500002425175452,37.93191980700585,35.29808650160601,39.09157593013544,40.01566060928086,37.93191980700585],[17.500002425175452,-45.77906322888519,-46.40102940686822,-48.74639395270205,-43.74951910352028,-45.77906322888519],[-2.3701968327616378e-06,35.60821558535796,34.53854782419043,39.09157593013544,35.025522467187265,35.60821558535796],[-2.3701968327616378e-06,-45.60312772054129,-45.957210949019746,-48.74639395270205,-43.758010076644304,-45.60312772054129],[-2.3701968327616378e-06,37.311412464391914,34.73671427170412,39.09157593013544,39.04167534793006,37.311412464391914],[-17.499997916731093,-46.6391200497954,-48.13541132121796,-48.74639395270205,-44.14322591947432,-46.6391200497954],[-17.499997916731093,45.779065145406854,43.74952100662342,48.74639585439284,46.40103134384354,45.779065145406854],[-17.499997916731093,-37.93192334106978,-40.01566388728011,-39.09157998890911,-35.29809004283421,-37.93192334106978],[-30.310889377755636,36.22606463702085,34.11093382780881,39.09157593013544,36.98191639055227,36.22606463702085],[-30.310889377755636,45.45549009728459,43.82380440248033,48.74639585439284,45.52610734311618,45.45549009728459],[-34.999998609225,35.86551022522007,36.06991700975702,39.09157593013544,34.13079240841539,35.86551022522007],[-34.999998609225,45.276880741036344,44.124741868463325,48.74639585439284,44.783226334663006,45.276880741036344],[-34.999998609225,-22.685627245007353,-25.318377709370576,-21.694186776749888,-20.523174792274645,-22.685627245007353],[-30.310889377755636,45.25771621784234,44.63118330291934,48.74639585439284,44.22936500324292,45.25771621784234],[-17.500005218299936,-2.325166524534314,-4.745238336403878,9.508453920219704e-07,-1.0080571954257789,-2.325166524534314]]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1152\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1153\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p1158\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"color\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"line_width\":{\"type\":\"value\",\"value\":4},\"line_join\":{\"type\":\"value\",\"value\":\"round\"}}},\"selection_glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p1159\",\"attributes\":{\"line_color\":{\"type\":\"value\",\"value\":\"#fdae61\"},\"line_width\":{\"type\":\"value\",\"value\":5},\"line_join\":{\"type\":\"value\",\"value\":\"round\"}}},\"hover_glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p1160\",\"attributes\":{\"line_color\":{\"type\":\"value\",\"value\":\"#abdda4\"},\"line_width\":{\"type\":\"value\",\"value\":5},\"line_join\":{\"type\":\"value\",\"value\":\"round\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesAndLinkedEdges\",\"id\":\"p1183\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"EdgesAndLinkedNodes\",\"id\":\"p1184\"}}},{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p1103\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p1120\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[0,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3LZt/P//SECjTiYhs+evPg==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VfyaWTOGRkD5J2dZtrE1QA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[2,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"n6ozWKssP0AphJTCuItDQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[3,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"eIhEcYlAJkBdPjzmiV9IQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[4,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Da2NTYlAJsBdPjzmiV9IQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[5,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"5zxYX6ssP8AphJTCuItDQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[6,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"eUUtXTOGRsD2J2eLtrE1QA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[7,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAAScBF7RcxBrHMvg==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[8,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"eUUtXTOGRsDYdH85trE1wA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[9,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8TxYyaosP8CVqqDkuItDwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[10,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Bq2NsYlAJsDMZEjWiV9IwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[11,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"cYhE1YlAJkDMZEjWiV9IwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[12,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qqozwqosP0CVqqDkuItDwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[13,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VfyaWTOGRkDYdH85trE1wA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[14,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACAQUCNseMQnyOnPg==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[15,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"sneTZpZPPkCoDLAFAIAxQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[16,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"58Jh9P9/MUBuwWGJlk8+QA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[17,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"i1tnAa/Oq77lJOf//39BQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[18,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VLdaEQCAMcB6wWFmlk8+QA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[19,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"MWwMT5ZPPsCcDLAoAIAxQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[20,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QHo89P9/QcByjyZ99eHDvg==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[21,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"JWwMcpZPPsCdbQzd/38xwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[22,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"cbfauf9/McBeIj5ylk8+wA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[23,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AE3R0B3Esj5cVVX0/39BwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[24,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8sJh0f9/MUBeIj5ylk8+wA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[25,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vneTQ5ZPPkB1bYxXAIAxwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1108\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1105\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1106\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1107\"},\"data\":{\"type\":\"map\",\"entries\":[[\"k\",[\"100.0\",\"0.05\",\"100.0\",\"100.0\",\"0.05\",\"100.0\",\"0.05\",\"100.0\",\"0.001\",\"100.0\",\"0.001\",\"0.1\"]],[\"k_r\",[\"10.0\",\"None\",\"10.0\",\"10.0\",\"None\",\"10.0\",\"None\",\"10.0\",\"None\",\"10.0\",\"None\",\"None\"]],[\"species\",[\"dna[mydna]+protein[RNAP] <--> complex[dna[mydna]:protein[RNAP]]\",\"complex[dna[mydna]:protein[RNAP]] --> dna[mydna]+rna[mydna]+protein[RNAP]\",\"2protein[laci]+dna[mydna] <--> complex[dna[mydna]:2x_protein[laci]]\",\"complex[dna[mydna]:2x_protein[laci]]+protein[RNAP] <--> complex[complex[dna[mydna]:2x_protein[laci]]:protein[RNAP]]\",\"complex[complex[dna[mydna]:2x_protein[laci]]:protein[RNAP]] --> complex[dna[mydna]:2x_protein[laci]]+rna[mydna]+protein[RNAP]\",\"rna[mydna]+protein[Ribo] <--> complex[protein[Ribo]:rna[mydna]]\",\"complex[protein[Ribo]:rna[mydna]] --> rna[mydna]+protein[GFP]+protein[Ribo]\",\"complex[protein[Ribo]:rna[mydna]]+protein[RNAase] <--> complex[complex[protein[Ribo]:rna[mydna]]:protein[RNAase]]\",\"complex[complex[protein[Ribo]:rna[mydna]]:protein[RNAase]] --> protein[Ribo]+protein[RNAase]\",\"rna[mydna]+protein[RNAase] <--> complex[protein[RNAase]:rna[mydna]]\",\"complex[protein[RNAase]:rna[mydna]] --> protein[RNAase]\",\"rna[mydna] --> \"]],[\"color\",[\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\"]],[\"type\",[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"]],[\"index\",[14,15,16,17,18,19,20,21,22,23,24,25]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1109\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1110\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1163\",\"attributes\":{\"size\":{\"type\":\"value\",\"value\":8},\"fill_color\":{\"type\":\"field\",\"field\":\"color\"},\"marker\":{\"type\":\"value\",\"value\":\"square\"}}},\"selection_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1164\",\"attributes\":{\"size\":{\"type\":\"value\",\"value\":8},\"fill_color\":{\"type\":\"value\",\"value\":\"#fdae61\"},\"marker\":{\"type\":\"value\",\"value\":\"square\"}}},\"hover_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1165\",\"attributes\":{\"size\":{\"type\":\"value\",\"value\":8},\"fill_color\":{\"type\":\"value\",\"value\":\"#abdda4\"},\"marker\":{\"type\":\"value\",\"value\":\"square\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1115\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1112\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1113\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1114\"},\"data\":{\"type\":\"map\",\"entries\":[[\"start\",[]],[\"end\",[]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1116\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1117\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p1111\"}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p1118\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p1119\"}}},{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p1121\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p1138\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[0,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3LZt/P//SECjTiYhs+evPg==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VfyaWTOGRkD5J2dZtrE1QA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[2,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"n6ozWKssP0AphJTCuItDQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[3,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"eIhEcYlAJkBdPjzmiV9IQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[4,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Da2NTYlAJsBdPjzmiV9IQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[5,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"5zxYX6ssP8AphJTCuItDQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[6,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"eUUtXTOGRsD2J2eLtrE1QA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[7,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAAScBF7RcxBrHMvg==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[8,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"eUUtXTOGRsDYdH85trE1wA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[9,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8TxYyaosP8CVqqDkuItDwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[10,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Bq2NsYlAJsDMZEjWiV9IwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[11,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"cYhE1YlAJkDMZEjWiV9IwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[12,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qqozwqosP0CVqqDkuItDwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[13,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VfyaWTOGRkDYdH85trE1wA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[14,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACAQUCNseMQnyOnPg==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[15,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"sneTZpZPPkCoDLAFAIAxQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[16,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"58Jh9P9/MUBuwWGJlk8+QA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[17,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"i1tnAa/Oq77lJOf//39BQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[18,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VLdaEQCAMcB6wWFmlk8+QA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[19,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"MWwMT5ZPPsCcDLAoAIAxQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[20,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QHo89P9/QcByjyZ99eHDvg==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[21,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"JWwMcpZPPsCdbQzd/38xwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[22,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"cbfauf9/McBeIj5ylk8+wA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[23,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AE3R0B3Esj5cVVX0/39BwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[24,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8sJh0f9/MUBeIj5ylk8+wA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[25,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vneTQ5ZPPkB1bYxXAIAxwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1126\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1123\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1124\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1125\"},\"data\":{\"type\":\"map\",\"entries\":[[\"image\",[\"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\",null,null,null,null,null,null,null,null,null,null,null,null,null]],[\"color\",[null,\"blue\",\"blue\",\"blue\",\"grey\",\"grey\",\"grey\",\"blue\",\"grey\",\"grey\",\"lightgreen\",\"grey\",\"grey\",\"grey\"]],[\"type\",[\"nothing\",\"protein\",\"protein\",\"protein\",\"dna\",\"rna\",\"complex\",\"protein\",\"complex\",\"complex\",\"protein\",\"complex\",\"complex\",\"complex\"]],[\"species\",[\"nothing\",\"protein[RNAP in default.]\",\"protein[Ribo in default.]\",\"protein[RNAase in default.]\",\"dna[mydna in default.]\",\"rna[mydna in default.]\",\"complex[dna[mydna]:protein[RNAP] in default.]\",\"protein[laci in default.]\",\"complex[dna[mydna]:2x_protein[laci] in default.]\",\"complex[complex[dna[mydna]:2x_protein[laci]]:protein[RNAP] in default.]\",\"protein[GFP in default.]\",\"complex[protein[Ribo]:rna[mydna] in default.]\",\"complex[complex[protein[Ribo]:rna[mydna]]:protein[RNAase] in default.]\",\"complex[protein[RNAase]:rna[mydna] in default.]\"]],[\"index\",[0,1,2,3,4,5,6,7,8,9,10,11,12,13]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1127\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1128\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1166\",\"attributes\":{\"size\":{\"type\":\"value\",\"value\":12},\"fill_color\":{\"type\":\"field\",\"field\":\"color\"}}},\"selection_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1167\",\"attributes\":{\"size\":{\"type\":\"value\",\"value\":15},\"fill_color\":{\"type\":\"value\",\"value\":\"#fdae61\"}}},\"hover_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1168\",\"attributes\":{\"size\":{\"type\":\"value\",\"value\":15},\"fill_color\":{\"type\":\"value\",\"value\":\"#abdda4\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1133\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1130\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1131\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1132\"},\"data\":{\"type\":\"map\",\"entries\":[[\"start\",[]],[\"end\",[]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1134\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1135\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p1129\"}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p1136\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p1137\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1102\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p1169\",\"attributes\":{\"renderers\":[{\"id\":\"p1139\"}],\"tooltips\":null}},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p1170\",\"attributes\":{\"renderers\":[{\"id\":\"p1121\"}],\"tooltips\":[[\"name\",\"@species\"],[\"type\",\"@type\"]],\"attachment\":\"right\"}},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p1171\",\"attributes\":{\"renderers\":[{\"id\":\"p1103\"}],\"tooltips\":[[\"reaction\",\"@species\"],[\"type\",\"@type\"],[\"k_f\",\"@k\"],[\"k_r\",\"@k_r\"]],\"attachment\":\"right\"}},{\"type\":\"object\",\"name\":\"TapTool\",\"id\":\"p1172\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"BoxSelectTool\",\"id\":\"p1173\",\"attributes\":{\"renderers\":\"auto\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1174\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"editable\":true,\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p1180\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p1179\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1181\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1182\",\"attributes\":{\"renderers\":\"auto\"}}]}}}}]}};\n", " const render_items = [{\"docid\":\"e1d045ae-6174-4521-84e5-60b4fe46f0bc\",\"roots\":{\"p1096\":\"c31ec24d-11aa-4f25-93fe-a2afc3c81160\"},\"root_ids\":[\"p1096\"]}];\n", " void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " let attempts = 0;\n", " const timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p1096" } }, "output_type": "display_data" } ], "source": [ "try:\n", " from bokeh.models import (Plot , Range1d)\n", " import bokeh.plotting\n", " import bokeh.io\n", " bokeh.io.output_notebook() #this makes the graph appear in line with the notebook\n", "\n", " #this demonstrates the \"circle\" layout. reactions are in the middle with species on the outside.\n", " #also, the pretty_print text display style\n", "\n", " colordict = {\n", " \"G1\":\"red\", #will only effect the species dna_G1 and rna_G1\n", " \"protein_GFP\": \"lightgreen\", #will only effect the species protein_GFP\n", " \"protein\": \"blue\", #All protein species, protein_Ribo, protein_RNAase, and protein_RNAP will be blue\n", " #All other species will be grey by default. This will include all complexes.\n", " }\n", "\n", " plot = render_network_bokeh(crn1,\n", " colordict = colordict,\n", " use_pretty_print=True, #uses pretty print\n", " pp_show_rates=False, #this would put the reaction rates in the reaction name. It's already listed seperately in the tool tip\n", " pp_show_attributes=False,\n", " pp_show_material = True, #this lists the material of the species being displayed\n", " layout=\"circle\",\n", " )\n", " bokeh.io.show(plot)\n", "except ModuleNotFoundError:\n", " print('please install the plotting libraries: pip install biocrnpyler[all]')\n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/murray/Library/CloudStorage/Dropbox/macosx/src/biocrnpyler/biocrnpyler/core/parameter.py:678: UserWarning: parameter file contains no unit column! Please add a column named ['unit', 'units'].\n", " warn(\n" ] }, { "data": { "text/html": [ " \n", "
\n", " \n", " Loading BokehJS ...\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "'use strict';\n", "(function(root) {\n", " function now() {\n", " return new Date();\n", " }\n", "\n", " const force = true;\n", "\n", " if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n", " root._bokeh_onload_callbacks = [];\n", " root._bokeh_is_loading = undefined;\n", " }\n", "\n", "const JS_MIME_TYPE = 'application/javascript';\n", " const HTML_MIME_TYPE = 'text/html';\n", " const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n", " const CLASS_NAME = 'output_bokeh rendered_html';\n", "\n", " /**\n", " * Render data to the DOM node\n", " */\n", " function render(props, node) {\n", " const script = document.createElement(\"script\");\n", " node.appendChild(script);\n", " }\n", "\n", " /**\n", " * Handle when an output is cleared or removed\n", " */\n", " function handleClearOutput(event, handle) {\n", " function drop(id) {\n", " const view = Bokeh.index.get_by_id(id)\n", " if (view != null) {\n", " view.model.document.clear()\n", " Bokeh.index.delete(view)\n", " }\n", " }\n", "\n", " const cell = handle.cell;\n", "\n", " const id = cell.output_area._bokeh_element_id;\n", " const server_id = cell.output_area._bokeh_server_id;\n", "\n", " // Clean up Bokeh references\n", " if (id != null) {\n", " drop(id)\n", " }\n", "\n", " if (server_id !== undefined) {\n", " // Clean up Bokeh references\n", " const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n", " cell.notebook.kernel.execute(cmd_clean, {\n", " iopub: {\n", " output: function(msg) {\n", " const id = msg.content.text.trim()\n", " drop(id)\n", " }\n", " }\n", " });\n", " // Destroy server and session\n", " const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n", " cell.notebook.kernel.execute(cmd_destroy);\n", " }\n", " }\n", "\n", " /**\n", " * Handle when a new output is added\n", " */\n", " function handleAddOutput(event, handle) {\n", " const output_area = handle.output_area;\n", " const output = handle.output;\n", "\n", " // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n", " if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n", " return\n", " }\n", "\n", " const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n", "\n", " if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n", " toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n", " // store reference to embed id on output_area\n", " output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n", " }\n", " if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n", " const bk_div = document.createElement(\"div\");\n", " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", " const script_attrs = bk_div.children[0].attributes;\n", " for (let i = 0; i < script_attrs.length; i++) {\n", " toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n", " toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n", " }\n", " // store reference to server id on output_area\n", " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n", " }\n", " }\n", "\n", " function register_renderer(events, OutputArea) {\n", "\n", " function append_mime(data, metadata, element) {\n", " // create a DOM node to render to\n", " const toinsert = this.create_output_subarea(\n", " metadata,\n", " CLASS_NAME,\n", " EXEC_MIME_TYPE\n", " );\n", " this.keyboard_manager.register_events(toinsert);\n", " // Render to node\n", " const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n", " render(props, toinsert[toinsert.length - 1]);\n", " element.append(toinsert);\n", " return toinsert\n", " }\n", "\n", " /* Handle when an output is cleared or removed */\n", " events.on('clear_output.CodeCell', handleClearOutput);\n", " events.on('delete.Cell', handleClearOutput);\n", "\n", " /* Handle when a new output is added */\n", " events.on('output_added.OutputArea', handleAddOutput);\n", "\n", " /**\n", " * Register the mime type and append_mime function with output_area\n", " */\n", " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n", " /* Is output safe? */\n", " safe: true,\n", " /* Index of renderer in `output_area.display_order` */\n", " index: 0\n", " });\n", " }\n", "\n", " // register the mime type if in Jupyter Notebook environment and previously unregistered\n", " if (root.Jupyter !== undefined) {\n", " const events = require('base/js/events');\n", " const OutputArea = require('notebook/js/outputarea').OutputArea;\n", "\n", " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n", " register_renderer(events, OutputArea);\n", " }\n", " }\n", " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n", " root._bokeh_timeout = Date.now() + 5000;\n", " root._bokeh_failed_load = false;\n", " }\n", "\n", " const NB_LOAD_WARNING = {'data': {'text/html':\n", " \"
\\n\"+\n", " \"

\\n\"+\n", " \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n", " \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n", " \"

\\n\"+\n", " \"
    \\n\"+\n", " \"
  • re-rerun `output_notebook()` to attempt to load from CDN again, or
  • \\n\"+\n", " \"
  • use INLINE resources instead, as so:
  • \\n\"+\n", " \"
\\n\"+\n", " \"\\n\"+\n", " \"from bokeh.resources import INLINE\\n\"+\n", " \"output_notebook(resources=INLINE)\\n\"+\n", " \"\\n\"+\n", " \"
\"}};\n", "\n", " function display_loaded(error = null) {\n", " const el = document.getElementById(\"ba5e3385-3158-4078-8524-8e955bc1e33d\");\n", " if (el != null) {\n", " const html = (() => {\n", " if (typeof root.Bokeh === \"undefined\") {\n", " if (error == null) {\n", " return \"BokehJS is loading ...\";\n", " } else {\n", " return \"BokehJS failed to load.\";\n", " }\n", " } else {\n", " const prefix = `BokehJS ${root.Bokeh.version}`;\n", " if (error == null) {\n", " return `${prefix} successfully loaded.`;\n", " } else {\n", " return `${prefix} encountered errors while loading and may not function as expected.`;\n", " }\n", " }\n", " })();\n", " el.innerHTML = html;\n", "\n", " if (error != null) {\n", " const wrapper = document.createElement(\"div\");\n", " wrapper.style.overflow = \"auto\";\n", " wrapper.style.height = \"5em\";\n", " wrapper.style.resize = \"vertical\";\n", " const content = document.createElement(\"div\");\n", " content.style.fontFamily = \"monospace\";\n", " content.style.whiteSpace = \"pre-wrap\";\n", " content.style.backgroundColor = \"rgb(255, 221, 221)\";\n", " content.textContent = error.stack ?? error.toString();\n", " wrapper.append(content);\n", " el.append(wrapper);\n", " }\n", " } else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(() => display_loaded(error), 100);\n", " }\n", " }\n", "\n", " function run_callbacks() {\n", " try {\n", " root._bokeh_onload_callbacks.forEach(function(callback) {\n", " if (callback != null)\n", " callback();\n", " });\n", " } finally {\n", " delete root._bokeh_onload_callbacks\n", " }\n", " console.debug(\"Bokeh: all callbacks have finished\");\n", " }\n", "\n", " function load_libs(css_urls, js_urls, callback) {\n", " if (css_urls == null) css_urls = [];\n", " if (js_urls == null) js_urls = [];\n", "\n", " root._bokeh_onload_callbacks.push(callback);\n", " if (root._bokeh_is_loading > 0) {\n", " console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n", " return null;\n", " }\n", " if (js_urls == null || js_urls.length === 0) {\n", " run_callbacks();\n", " return null;\n", " }\n", " console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", " root._bokeh_is_loading = css_urls.length + js_urls.length;\n", "\n", " function on_load() {\n", " root._bokeh_is_loading--;\n", " if (root._bokeh_is_loading === 0) {\n", " console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n", " run_callbacks()\n", " }\n", " }\n", "\n", " function on_error(url) {\n", " console.error(\"failed to load \" + url);\n", " }\n", "\n", " for (let i = 0; i < css_urls.length; i++) {\n", " const url = css_urls[i];\n", " const element = document.createElement(\"link\");\n", " element.onload = on_load;\n", " element.onerror = on_error.bind(null, url);\n", " element.rel = \"stylesheet\";\n", " element.type = \"text/css\";\n", " element.href = url;\n", " console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n", " document.body.appendChild(element);\n", " }\n", "\n", " for (let i = 0; i < js_urls.length; i++) {\n", " const url = js_urls[i];\n", " const element = document.createElement('script');\n", " element.onload = on_load;\n", " element.onerror = on_error.bind(null, url);\n", " element.async = false;\n", " element.src = url;\n", " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", " document.head.appendChild(element);\n", " }\n", " };\n", "\n", " function inject_raw_css(css) {\n", " const element = document.createElement(\"style\");\n", " element.appendChild(document.createTextNode(css));\n", " document.body.appendChild(element);\n", " }\n", "\n", " const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.3.min.js\"];\n", " const css_urls = [];\n", "\n", " const inline_js = [ function(Bokeh) {\n", " Bokeh.set_log_level(\"info\");\n", " },\n", "function(Bokeh) {\n", " }\n", " ];\n", "\n", " function run_inline_js() {\n", " if (root.Bokeh !== undefined || force === true) {\n", " try {\n", " for (let i = 0; i < inline_js.length; i++) {\n", " inline_js[i].call(root, root.Bokeh);\n", " }\n", "\n", " } catch (error) {display_loaded(error);throw error;\n", " }if (force === true) {\n", " display_loaded();\n", " }} else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(run_inline_js, 100);\n", " } else if (!root._bokeh_failed_load) {\n", " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n", " root._bokeh_failed_load = true;\n", " } else if (force !== true) {\n", " const cell = $(document.getElementById(\"ba5e3385-3158-4078-8524-8e955bc1e33d\")).parents('.cell').data().cell;\n", " cell.output_area.append_execute_result(NB_LOAD_WARNING)\n", " }\n", " }\n", "\n", " if (root._bokeh_is_loading === 0) {\n", " console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n", " run_inline_js();\n", " } else {\n", " load_libs(css_urls, js_urls, function() {\n", " console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n", " run_inline_js();\n", " });\n", " }\n", "}(window));" ], "application/vnd.bokehjs_load.v0+json": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\n\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"
    \\n\"+\n \"
  • re-rerun `output_notebook()` to attempt to load from CDN again, or
  • \\n\"+\n \"
  • use INLINE resources instead, as so:
  • \\n\"+\n \"
\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(\"ba5e3385-3158-4078-8524-8e955bc1e33d\");\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.3.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {display_loaded(error);throw error;\n }if (force === true) {\n display_loaded();\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(\"ba5e3385-3158-4078-8524-8e955bc1e33d\")).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));" }, "metadata": {}, "output_type": "display_data" }, { "name": "stderr", "output_type": "stream", "text": [ "/Users/murray/Library/CloudStorage/Dropbox/macosx/src/biocrnpyler/biocrnpyler/utils/plotting.py:203: UserWarning: Node keys in 'layout_function' don't match node keys in the graph. These nodes may not be displayed correctly.\n", " reaction_renderer = from_networkx(DGreactions, positions, center=(0, 0))\n", "/Users/murray/Library/CloudStorage/Dropbox/macosx/src/biocrnpyler/biocrnpyler/utils/plotting.py:204: UserWarning: Node keys in 'layout_function' don't match node keys in the graph. These nodes may not be displayed correctly.\n", " species_renderer = from_networkx(DGspecies, positions, center=(0, 0))\n" ] }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " const docs_json = {\"09b95d46-a3be-4a4c-afdc-708e55fe3eab\":{\"version\":\"3.7.3\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Plot\",\"id\":\"p1265\",\"attributes\":{\"width\":500,\"height\":500,\"x_range\":{\"type\":\"object\",\"name\":\"Range1d\",\"id\":\"p1330\",\"attributes\":{\"start\":-65.09999972229654,\"end\":65.09999999322675}},\"y_range\":{\"type\":\"object\",\"name\":\"Range1d\",\"id\":\"p1331\",\"attributes\":{\"start\":-65.09999945587586,\"end\":65.10000025964743}},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1268\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1269\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1270\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p1308\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p1325\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[0,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAASUBBE2laWPiaPg==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qsgLTcH8R0CaVjSMWiwsQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[2,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SC4uxAUIRUAZiIOzMwg7QA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[3,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dmdk1BtfQEBPMIMgzORCQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[4,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RB9UIlDFNEBEbFYGpb1GQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[5,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NBHMcYV2HEBXGD9y275IQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[6,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"l4Wd+4R2HMBXGD9y275IQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[7,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XXzI60/FNMBDbFYfpb1GQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[8,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"A5YeuRtfQMBOMIM5zORCQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[9,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1FzowQUIRcAZiIOzMwg7QA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[10,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NvfFSsH8R8CYVjS+WiwsQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[11,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"iy66/f//SMDRF4T386XQvg==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[12,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NvfFSsH8R8BB/jtxWiwswA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[13,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0Vzo8wUIRcDvWwd0Mwg7wA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[14,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ApYe0htfQMA5GsUZzORCwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[15,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WnzINlDFNMAuVpj/pL1GwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[16,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"e4WdU4d2HMBAAoFr275IwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[17,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GRHMyYd2HEBAAoFr275IwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[18,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Qx9UO1DFNEAuVpj/pL1GwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[19,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dmdk1BtfQEA5GsUZzORCwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[20,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SS4uqwUIRUDoWwcKNAg7wA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[21,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"q8gLNMH8R0Az/judWywswA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[22,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACAQUAxDMP///+DPg==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[23,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lF6CUPe4QEBxHsFZA6IkQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[24,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"14gSZhnrPECb6UMfWbczQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[25,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PSko9XfSNUDKmizWNV07QA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[26,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2WSHC+mSKUB5Wg5+UEpAQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[27,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SpAVtKfsBEDY0IoPeXNBQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[28,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HWT2lSYnH8D8AAxRrQ9BQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[29,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AABgIgCAMcC8nyNnlk8+QA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[30,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"IiRHHSWoOcDAcjfmWM43QA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[31,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4jo1Tq6IP8AqcKOzMl8uQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[32,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1e2VRfZNQcCbaMBQrd0UQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[33,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1e2VRfZNQcCdaMCwrN0UwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[34,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4jo1Tq6IP8AqcKNjMl8uwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[35,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"IiRH+iSoOcDBcjcEWc43wA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[36,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AQDgyv9/McC8nyOFlk8+wA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[37,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"G2T2IScnH8D8AIxOrQ9BwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[38,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QJAV/KrsBEDZ0AoNeXNBwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[39,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2WSHLumSKUB5Wo57UEpAwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[40,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PikojHfSNUDKmiwXNl07wA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[41,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"14gSiRnrPECd6UPUWLczwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[42,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lF6CUPe4QEBuHsG4A6IkwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1313\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1310\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1311\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1312\"},\"data\":{\"type\":\"map\",\"entries\":[[\"k\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"100.0\",\"0.05\",\"100.0\",\"100.0\",\"0.05\",\"100.0\",\"0.05\",\"100.0\",\"0.05\",\"100.0\",\"100.0\",\"0.05\",\"100.0\",\"0.05\",\"100.0\",\"0.001\",\"100.0\",\"0.001\",\"100.0\",\"0.001\",\"0.1\"]],[\"image\",[\"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\",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]],[\"k_r\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"10.0\",\"None\",\"10.0\",\"10.0\",\"None\",\"10.0\",\"None\",\"10.0\",\"None\",\"10.0\",\"10.0\",\"None\",\"10.0\",\"None\",\"10.0\",\"None\",\"10.0\",\"None\",\"10.0\",\"None\",\"None\"]],[\"species\",[\"nothing\",\"protein[RNAP in default.]\",\"protein[Ribo in default.]\",\"protein[RNAase in default.]\",\"dna[mydna in default.]\",\"rna[mydna in default.]\",\"complex[dna[mydna]:protein[RNAP] in default.]\",\"protein[laci in default.]\",\"complex[dna[mydna]:2x_protein[laci] in default.]\",\"complex[complex[dna[mydna]:2x_protein[laci]]:protein[RNAP] in default.]\",\"protein[GFP in default.]\",\"complex[protein[Ribo]:rna[mydna] in default.]\",\"dna[part[ptet-forward]:part[utr1-forward]:part[GFP-forward]:part[t16-forward] in default.]\",\"rna[part[utr1-forward]:part[GFP-forward]:part[t16-forward] in default.]\",\"ordered_polymer[complex[part[ptet]:protein[RNAP]-forward]:part[utr1-forward]:part[GFP-forward]:part[t16-forward] in default.]\",\"protein[tetR in default.]\",\"ordered_polymer[complex[part[ptet]:2x_protein[tetR]-forward]:part[utr1-forward]:part[GFP-forward]:part[t16-forward] in default.]\",\"ordered_polymer[complex[complex[part[ptet]:2x_protein[tetR]]:protein[RNAP]-forward]:part[utr1-forward]:part[GFP-forward]:part[t16-forward] in default.]\",\"ordered_polymer[complex[part[utr1]:protein[Ribo]-forward]:part[GFP-forward]:part[t16-forward] in default.]\",\"complex[protein[RNAase]:rna[part[utr1-forward]:part[GFP-forward]:part[t16-forward]] in default.]\",\"complex[complex[protein[Ribo]:rna[mydna]]:protein[RNAase] in default.]\",\"complex[protein[RNAase]:rna[mydna] in default.]\",\"dna[mydna]+protein[RNAP] <--> complex[dna[mydna]:protein[RNAP]]\",\"complex[dna[mydna]:protein[RNAP]] --> dna[mydna]+rna[mydna]+protein[RNAP]\",\"2protein[laci]+dna[mydna] <--> complex[dna[mydna]:2x_protein[laci]]\",\"complex[dna[mydna]:2x_protein[laci]]+protein[RNAP] <--> complex[complex[dna[mydna]:2x_protein[laci]]:protein[RNAP]]\",\"complex[complex[dna[mydna]:2x_protein[laci]]:protein[RNAP]] --> complex[dna[mydna]:2x_protein[laci]]+rna[mydna]+protein[RNAP]\",\"rna[mydna]+protein[Ribo] <--> complex[protein[Ribo]:rna[mydna]]\",\"complex[protein[Ribo]:rna[mydna]] --> rna[mydna]+protein[GFP]+protein[Ribo]\",\"dna[part[ptet-forward]:part[utr1-forward]:part[GFP-forward]:part[t16-forward]]+protein[RNAP] <--> ordered_polymer[complex[part[ptet]:protein[RNAP]-forward]:part[utr1-forward]:part[GFP-forward]:part[t16-forward]]\",\"ordered_polymer[complex[part[ptet]:protein[RNAP]-forward]:part[utr1-forward]:part[GFP-forward]:part[t16-forward]] --> dna[part[ptet-forward]:part[utr1-forward]:part[GFP-forward]:part[t16-forward]]+rna[part[utr1-forward]:part[GFP-forward]:part[t16-forward]]+protein[RNAP]\",\"2protein[tetR]+dna[part[ptet-forward]:part[utr1-forward]:part[GFP-forward]:part[t16-forward]] <--> ordered_polymer[complex[part[ptet]:2x_protein[tetR]-forward]:part[utr1-forward]:part[GFP-forward]:part[t16-forward]]\",\"ordered_polymer[complex[part[ptet]:2x_protein[tetR]-forward]:part[utr1-forward]:part[GFP-forward]:part[t16-forward]]+protein[RNAP] <--> ordered_polymer[complex[complex[part[ptet]:2x_protein[tetR]]:protein[RNAP]-forward]:part[utr1-forward]:part[GFP-forward]:part[t16-forward]]\",\"ordered_polymer[complex[complex[part[ptet]:2x_protein[tetR]]:protein[RNAP]-forward]:part[utr1-forward]:part[GFP-forward]:part[t16-forward]] --> ordered_polymer[complex[part[ptet]:2x_protein[tetR]-forward]:part[utr1-forward]:part[GFP-forward]:part[t16-forward]]+rna[part[utr1-forward]:part[GFP-forward]:part[t16-forward]]+protein[RNAP]\",\"rna[part[utr1-forward]:part[GFP-forward]:part[t16-forward]]+protein[Ribo] <--> ordered_polymer[complex[part[utr1]:protein[Ribo]-forward]:part[GFP-forward]:part[t16-forward]]\",\"ordered_polymer[complex[part[utr1]:protein[Ribo]-forward]:part[GFP-forward]:part[t16-forward]] --> rna[part[utr1-forward]:part[GFP-forward]:part[t16-forward]]+protein[GFP]+protein[Ribo]\",\"rna[part[utr1-forward]:part[GFP-forward]:part[t16-forward]]+protein[RNAase] <--> complex[protein[RNAase]:rna[part[utr1-forward]:part[GFP-forward]:part[t16-forward]]]\",\"complex[protein[RNAase]:rna[part[utr1-forward]:part[GFP-forward]:part[t16-forward]]] --> protein[RNAase]\",\"complex[protein[Ribo]:rna[mydna]]+protein[RNAase] <--> complex[complex[protein[Ribo]:rna[mydna]]:protein[RNAase]]\",\"complex[complex[protein[Ribo]:rna[mydna]]:protein[RNAase]] --> protein[Ribo]+protein[RNAase]\",\"rna[mydna]+protein[RNAase] <--> complex[protein[RNAase]:rna[mydna]]\",\"complex[protein[RNAase]:rna[mydna]] --> protein[RNAase]\",\"rna[mydna] --> \"]],[\"color\",[null,\"blue\",\"blue\",\"blue\",\"grey\",\"grey\",\"grey\",\"blue\",\"grey\",\"grey\",\"green\",\"grey\",\"grey\",\"grey\",\"grey\",\"blue\",\"grey\",\"grey\",\"grey\",\"grey\",\"grey\",\"grey\",\"cornflowerblue\",\"orange\",\"cornflowerblue\",\"cornflowerblue\",\"orange\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"orange\",\"cornflowerblue\",\"cornflowerblue\",\"orange\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\"]],[\"type\",[\"nothing\",\"protein\",\"protein\",\"protein\",\"dna\",\"rna\",\"complex\",\"protein\",\"complex\",\"complex\",\"protein\",\"complex\",\"dna\",\"rna\",\"ordered_polymer\",\"protein\",\"ordered_polymer\",\"ordered_polymer\",\"ordered_polymer\",\"complex\",\"complex\",\"complex\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"]],[\"index\",[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1314\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1315\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1326\",\"attributes\":{\"size\":{\"type\":\"value\",\"value\":12},\"line_alpha\":{\"type\":\"value\",\"value\":0},\"fill_color\":{\"type\":\"field\",\"field\":\"color\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1320\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1317\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1318\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1319\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"color\",[\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"gray\",\"cornflowerblue\",\"orange\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"orange\",\"cornflowerblue\",\"gray\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"orange\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"orange\",\"cornflowerblue\",\"gray\",\"cornflowerblue\",\"gray\",\"cornflowerblue\",\"gray\",\"cornflowerblue\",\"gray\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"orange\",\"orange\",\"orange\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"orange\",\"orange\",\"orange\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"gray\",\"gray\",\"gray\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"orange\",\"orange\",\"orange\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"orange\",\"orange\",\"orange\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"gray\",\"gray\",\"gray\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"gray\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"gray\",\"gray\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"gray\",\"gray\"]],[\"start\",[1,1,1,1,2,2,3,3,3,4,4,5,5,5,6,6,7,8,8,9,9,11,11,11,12,12,13,13,14,14,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,22,23,23,23,24,24,24,25,25,25,26,26,26,27,27,27,28,28,28,29,29,29,30,30,30,31,31,31,32,32,32,33,33,33,34,34,34,35,35,35,36,36,36,37,38,38,38,39,39,40,40,40,41,42]],[\"end\",[22,25,29,32,27,34,36,38,40,22,24,27,40,42,22,23,24,24,25,25,26,27,28,38,29,31,34,36,29,30,31,31,32,32,33,34,35,36,37,38,39,40,41,4,1,6,4,5,1,7,4,8,8,1,9,8,5,1,5,2,11,5,10,2,12,1,14,12,13,1,15,12,16,16,1,17,16,13,1,13,2,18,13,10,2,13,3,19,3,11,3,20,2,3,5,3,21,3,0]],[\"xs\",[[47.9746490771807,37.37117731576247,36.09471637833384,35.0,39.772425885459576,37.37117731576247],[47.9746490771807,24.942974279120698,26.81490457136133,21.82214290838714,24.551436239649156,24.942974279120698],[47.9746490771807,-14.102747669704085,-12.695689018444973,-17.500002048909664,-13.89829052077446,-14.102747669704085],[47.9746490771807,-31.129093910964485,-30.570698425133855,-34.609078119475875,-30.036730015704904,-31.129093910964485],[42.06267597441598,6.047909697668767,7.351127874530666,2.6155542439537713,6.372857806906161,6.047909697668767],[42.06267597441598,-28.497955446973467,-29.0218517023542,-31.533909690852745,-26.533929108132345,-28.497955446973467],[32.74303679373308,-15.422050595266843,-16.940923226030378,-17.49999683350325,-12.917486926658865,-15.422050595266843],[32.74303679373308,3.9556531030699116,1.964003637478918,2.6155605024414683,6.582986611883408,3.9556531030699116],[32.74303679373308,22.400744533947766,20.072376859095872,21.82213664989944,25.003579659033893,22.400744533947766],[20.770753999269132,33.95495053423266,31.321129417276616,35.0,36.093043766820884,33.95495053423266],[20.770753999269132,27.86308202232967,25.229133009930038,28.918356303715736,29.99645292424229,27.86308202232967],[7.115743425445817,3.6472176948538273,1.502979220588448,2.6155542439537713,6.28083428627729,3.6472176948538273],[7.115743425445817,21.164339157255135,18.55287305453903,21.82213664989944,23.463773561900776,21.164339157255135],[7.115743425445817,32.03483404265358,29.41227075079826,33.44504743924804,33.98845090996085,32.03483404265358],[-7.1157416643995,32.73171971645581,30.289800442629428,35.0,34.09766141893446,32.73171971645581],[-7.1157416643995,30.92753001139616,28.59365432635915,33.44504743924804,32.0672004178804,30.92753001139616],[-20.770750748106696,25.811232713150897,23.923471085939667,28.918356303715736,26.225104486843037,25.811232713150897],[-32.74303354257065,25.55962865515021,24.05990002133878,28.918356303715736,25.466116963090066,25.55962865515021],[-32.74303354257065,18.384305977362793,17.099839161195813,21.82214290838714,18.038006323191567,18.384305977362793],[-42.06267570348578,18.322190188343942,17.505068837754173,21.82214290838714,17.479079928729096,18.322190188343942],[-42.06267570348578,9.304706032479956,8.730407977183848,12.786934242513256,8.227180245946515,9.304706032479956],[-49.99999972906979,-0.30108878194207245,0.3890967620332315,2.6155542439537713,-2.3748081432585897,-0.30108878194207245],[-49.99999972906979,-10.510133098707167,-9.584077819731904,-7.788233130610959,-12.727344209865354,-10.510133098707167],[-49.99999972906979,-0.30108283978436434,-2.374801935504305,2.6155605024414683,0.38910228854060813,-0.30108283978436434],[-47.9746488062505,-19.48070542221545,-17.889328412096827,-17.500002048909664,-22.011645510420628,-19.48070542221545],[-47.9746488062505,-33.24783780215917,-31.474609538970572,-31.533909690852745,-35.834082084596766,-33.24783780215917],[-42.06268166395024,-33.85904766130617,-32.54191260269862,-31.533909690852745,-36.27913120676817,-33.85904766130617],[-42.06268166395024,-20.96922356479482,-22.122840818665118,-17.49999683350325,-21.461262793445812,-20.96922356479482],[-32.74303652280288,-18.264518244156132,-16.006215785215034,-17.500002048909664,-20.885475303141625,-18.264518244156132],[-32.74303652280288,-26.05684610030917,-23.668107462715668,-25.65681632029385,-28.635342182910797,-26.05684610030917],[-20.770755218455044,-30.92251462682064,-28.31594323160083,-31.533909690852745,-33.23906570096118,-30.92251462682064],[-7.115750605096191,-30.29768895206195,-27.665619164017055,-31.533909690852745,-32.34334717632274,-30.29768895206195],[-7.115750605096191,-33.037451953555376,-30.430910893567397,-34.609078119475875,-34.89847910270009,-33.037451953555376],[7.11575236614251,-32.486546815203944,-29.995298782590936,-34.609078119475875,-33.970954513997356,-32.486546815203944],[7.11575236614251,-32.208635710885396,-29.819921551601805,-34.609078119475875,-33.458680098318915,-32.208635710885396],[20.770755489385248,-28.5052697189663,-26.533914574790835,-31.533909690852745,-29.03996436528423,-28.5052697189663],[20.770755489385248,-22.48541811374633,-20.675640700250003,-25.656814234131282,-22.790817465964615,-22.48541811374633],[32.74303679373308,-14.038116816517633,-12.849061767731488,-17.49999683350325,-13.585000357665727,-14.038116816517633],[32.74303679373308,-4.302456957026746,-3.2505614458482794,-7.788235216773525,-3.700844630840993,-4.302456957026746],[42.06267299418375,6.047916016450936,6.372864355855302,2.6155605024414683,7.351133991747044,6.047916016450936],[42.06267299418375,16.225718905538454,16.575796905380162,12.78693528559454,17.506856445778183,16.225718905538454],[47.97464609694847,24.942968306126758,24.55143073603573,21.82213664989944,26.814898264413216,24.942968306126758],[47.97464609694847,32.27495406723363,32.362784694075266,28.918358389878303,33.779352448032036,32.27495406723363],[35.0,21.815803465036474,24.449624581992516,20.770753999269132,19.677710232448245,21.815803465036474],[35.0,45.60347176141823,46.87993269884686,47.9746490771807,43.202223191721124,45.60347176141823],[35.0,-4.847461380855307,-2.4055421070289276,-7.1157416643995,-6.213403083333957,-4.847461380855307],[33.44504743924804,21.957501616218057,24.590875598188806,20.770753999269132,19.88707121223064,21.957501616218057],[33.44504743924804,9.068108678920689,11.606076174300718,7.115743425445817,7.4562618393774445,9.068108678920689],[33.44504743924804,44.586844820943654,44.41124285292068,47.9746490771807,43.155413733011216,44.586844820943654],[28.918356303715736,-17.663627157541857,-15.775865530330627,-20.770750748106696,-18.077498931234,-17.663627157541857],[28.918356303715736,21.826028280655198,24.45997729305483,20.770753999269132,19.692657378742577,21.826028280655198],[28.918356303715736,-29.384305894005124,-27.884577260193694,-32.74303354257065,-29.29079420194498,-29.384305894005124],[21.82214290838714,-29.305196611546304,-28.020729795379324,-32.74303354257065,-28.958896957375078,-29.305196611546304],[21.82214290838714,44.853817706447145,42.98188741420651,47.9746490771807,45.24535574591868,44.853817706447145],[21.82214290838714,-38.56272298344258,-37.74560163285281,-42.06267570348578,-37.71961272382774,-38.56272298344258],[12.786934242513256,-29.265699148366622,-28.1568942725612,-32.74303354257065,-28.725001604482785,-29.265699148366622],[12.786934242513256,8.228607119651091,10.862814618989539,7.115743425445817,6.122295746562565,8.228607119651091],[12.786934242513256,44.87649606718334,42.97858825650236,47.9746490771807,45.30476929366207,44.87649606718334],[2.6155542439537713,6.084079974545762,8.228318448811141,7.115743425445817,3.4504633831222984,6.084079974545762],[2.6155542439537713,38.630320520700984,37.32710234383909,42.06267597441598,38.305372411463594,38.630320520700984],[2.6155542439537713,-47.08335670317395,-47.77354224714925,-49.99999972906979,-45.00963734185743,-47.08335670317395],[-7.788233130610959,4.67914062901033,5.8959162550261395,7.115743425445817,2.3065422511645375,4.67914062901033],[-7.788233130610959,-44.842367309166015,-45.21493389358237,-47.9746488062505,-42.983977009549726,-44.842367309166015],[-7.788233130610959,38.597550548728776,37.42365595923558,42.06267597441598,38.1277341440407,38.597550548728776],[-17.500002048909664,-45.99394543294471,-47.58532244306334,-47.9746488062505,-43.463005344739535,-45.99394543294471],[-17.500002048909664,44.57739469797512,43.17033604671601,47.9746490771807,44.372937549045496,44.57739469797512],[-17.500002048909664,-31.978520327556414,-34.23682278649751,-32.74303652280288,-29.35756326857092,-31.978520327556414],[-25.65681632029385,-46.19842152068179,-47.93127639393411,-47.9746488062505,-43.62299849800238,-46.19842152068179],[-25.65681632029385,-40.98778709824753,-43.11202737566738,-42.06268166395024,-38.353661665694844,-40.98778709824753],[-25.65681632029385,44.504748687183444,43.354596536333,47.9746490771807,44.00892479991653,44.504748687183444],[-31.533909690852745,-21.382150282487153,-23.98872167770696,-20.770755218455044,-19.065599208346608,-21.382150282487153],[-31.533909690852745,-46.26072069494408,-48.03394895813267,-47.9746488062505,-43.67447641250648,-46.26072069494408],[-31.533909690852745,-8.351971343886987,-10.984041131931882,-7.115750605096191,-6.3063131196262,-8.351971343886987],[-34.609078119475875,-8.687376771016693,-11.29391783100467,-7.115750605096191,-6.826349621871977,-8.687376771016693],[-34.609078119475875,44.49466486866931,43.93626938283868,47.9746490771807,43.40230097340973,44.49466486866931],[-34.609078119475875,4.993221061870578,2.501973029257573,7.11575236614251,6.477628760663988,4.993221061870578],[-34.609078119475875,-8.962128824442956,-11.523881945121236,-7.115750605096191,-7.276220530638503,-8.962128824442956],[-34.609078119475875,-40.931081402176545,-43.028418458263246,-42.06268166395024,-38.29696037356541,-40.931081402176545],[-34.609078119475875,44.56651167409383,44.32718504783246,47.9746490771807,43.189160047497076,44.56651167409383],[-31.533909690852745,-39.73754369349681,-41.05467875210436,-42.06268166395024,-37.31746014803481,-39.73754369349681],[-31.533909690852745,39.02672173053671,39.55061798591744,42.06267597441598,37.062695391695584,39.02672173053671],[-31.533909690852745,17.742115517498803,15.770760373323338,20.770755489385248,18.276810163816734,17.742115517498803],[-25.656814234131282,-38.628445795185,-38.29627057772732,-42.06268166395024,-37.33156273606338,-38.628445795185],[-25.656814234131282,-46.1984215394753,-43.62299851334696,-47.9746488062505,-47.931276425091404,-46.1984215394753],[-25.656814234131282,39.26363784200369,40.10067998936731,42.06267597441598,37.09884873423494,39.26363784200369],[-17.49999683350325,-38.593454932658666,-37.43983767878837,-42.06268166395024,-38.10141570400767,-38.593454932658666],[-17.49999683350325,30.665090555496676,32.18396318626021,32.74303679373308,28.160526886888697,30.665090555496676],[-17.49999683350325,29.281156776747466,28.09210172796132,32.74303679373308,28.82804031789556,29.281156776747466],[-7.788235216773525,31.02448444399893,32.794757516053465,32.74303679373308,28.439001806832078,31.02448444399893],[2.6155605024414683,-47.08335638684396,-45.00963729112402,-49.99999972906979,-47.77354151516893,-47.08335638684396],[2.6155605024414683,31.402944193104638,33.394593658695634,32.74303679373308,28.77561068429114,31.402944193104638],[2.6155605024414683,38.630317480174284,38.30536914076991,42.06267299418375,37.32709950487817,38.630317480174284],[12.78693528559454,40.51983725685953,42.39790787151941,42.06267597441598,37.90990829632372,40.51983725685953],[12.78693528559454,31.788109045758365,33.9667711365544,32.74303679373308,29.156469055126706,31.788109045758365],[21.82213664989944,7.773540918090123,10.385007020806228,7.115743425445817,5.4741065134444815,7.773540918090123],[21.82213664989944,32.16442890968476,34.49279658453665,32.74303679373308,29.56159378459863,32.16442890968476],[21.82213664989944,44.85381444072115,45.245352010812184,47.97464609694847,42.981884482434694,44.85381444072115],[28.918358389878303,32.510758388653045,34.95015528459278,32.74303679373308,29.96117830415954,32.510758388653045],[33.44504743924804,47.02955617004889,47.64722232791979,50.0,45.00283533707334,47.02955617004889]]],[\"ys\",[[14.086628323925925,2.5743968039996266,4.878688092609526,1.4901161183274104e-07,1.4912919272345662,2.5743968039996266],[14.086628323925925,25.7796748994011,27.633046920484983,27.364102731599623,23.174716390865616,25.7796748994011],[14.086628323925925,29.469067664301495,31.696015535146596,30.310888715932137,26.84279499342434,29.469067664301495],[14.086628323925925,5.590259345019769,8.164614671882909,5.216481458419504,3.1932086597237817,5.590259345019769],[27.032038898098197,34.217342932396456,36.50660771634815,34.90213197973361,31.603242782469586,34.217342932396456],[27.032038898098197,-13.444385498227883,-10.862788399309718,-15.185931314183183,-15.199865890565826,-13.444385498227883],[37.78747946172427,-27.494485094511422,-25.342245145281293,-30.31089050407148,-28.310739771333303,-27.494485094511422],[37.78747946172427,-31.66884359962725,-29.944766085779406,-34.902131681710394,-31.859184086677185,-31.66884359962725],[37.78747946172427,-23.91226464594492,-22.680268364193452,-27.364106605901533,-23.506851055691058,-23.91226464594492],[45.48159865589017,3.3403401936926014,3.386135296280917,1.4901161183274104e-07,4.879063104519975,3.3403401936926014],[45.48159865589017,23.053327585801245,23.091056455697345,19.716203645782667,24.598591143391722,23.053327585801245],[49.49107196884932,38.2466305257158,39.77677830714893,34.90213197973361,38.30297337729171,38.2466305257158],[49.49107196884932,-23.926476250748312,-23.580997362957163,-27.364106605901533,-22.641286659179585,-23.926476250748312],[49.49107196884932,-7.1131085328790995,-7.360641657445554,-10.316434644292908,-5.346051090882036,-7.1131085328790995],[49.49107196884932,2.665502832425132,1.6775042860396154,1.4901161183274104e-07,4.9179046911027475,2.665502832425132],[49.49107196884932,12.74791407713716,11.52638423536592,10.316431813072287,15.12283770372575,12.74791407713716],[45.4816016361224,21.327347026415026,19.49010264790316,19.716203645782667,23.928850634424357,21.327347026415026],[37.7874824419565,20.700555505008566,18.534932063024538,19.716203645782667,23.333114418118146,20.700555505008566],[37.7874824419565,28.02081974499665,25.72098151900976,27.364102731599623,30.632177134758827,28.02081974499665],[27.032038898098197,27.34591049528207,24.84162944756498,27.364102731599623,29.841561904769545,27.34591049528207],[27.032038898098197,32.228322021438174,29.65746756985447,32.58058143330431,34.63207929847347,32.228322021438174],[-3.969253036700428e-06,32.96739854602934,30.425203671038012,34.90213197973361,34.59183656517493,32.96739854602934],[-3.969253036700428e-06,31.922190229464388,29.456113894914566,34.122476702557805,33.34454242076629,31.922190229464388],[-3.969253036700428e-06,-32.967398724878954,-34.591837083078836,-34.902131681710394,-30.42520373704193,-32.967398724878954],[-14.086627520154368,27.42526674710547,25.32606926253892,30.310888715932137,28.155645510118614,27.42526674710547],[-14.086627520154368,12.134302916430636,10.186285361536997,15.185933698368974,12.634754091974747,12.134302916430636],[-27.03203511409441,-17.801984337031865,-20.08327040084139,-15.185931314183183,-16.76164472876507,-17.801984337031865],[-27.03203511409441,-29.847785886417967,-32.21596622142571,-30.31089050407148,-27.259928033866327,-29.847785886417967],[-37.78747865795271,26.895407053383522,25.53924302514607,30.310888715932137,26.631409018355313,26.895407053383522],[-37.78747865795271,20.328979691279255,19.218556984012974,23.80604399541585,19.790028098320576,20.328979691279255],[-45.48159785211861,11.739747969816728,11.359095333983866,15.185933698368974,10.485673813938,11.739747969816728],[-49.491071165077756,11.911524089754996,12.017917221140161,15.185933698368974,10.25188759429617,11.911524089754996],[-49.491071165077756,2.0891837120266183,2.470044014685486,5.216481458419504,0.22486377765619725,2.0891837120266183],[-49.491071165077756,2.4335224464350125,3.2895563870860087,5.216481458419504,0.2573688095546798,2.4335224464350125],[-49.491071165077756,-7.7636100569356925,-6.653134693506708,-5.216479074233715,-10.082338134350248,-7.7636100569356925],[-45.48159785211861,-16.94016616752856,-15.192919830265959,-15.185931314183183,-19.51954836153231,-16.94016616752856],[-45.48159785211861,-25.28666951955542,-23.372559653026546,-23.806045783555195,-27.903125539290762,-25.28666951955542],[-37.78747865795271,-30.826047517025447,-28.47546057787582,-30.31089050407148,-33.421003459283845,-30.826047517025447],[-37.78747865795271,-34.43767463402948,-32.0225914675304,-34.12247640453458,-37.002274695740084,-34.43767463402948],[-27.0320440547911,-34.21734293658617,-31.60324281527043,-34.902131681710394,-36.50660783528395,-34.21734293658617],[-27.0320440547911,-31.928839457002475,-29.317985906614886,-32.580581135281086,-34.230533935106195,-31.928839457002475],[-14.086636460851059,-25.779679336037294,-23.174720756951658,-27.364106605901533,-27.633051694419255,-25.779679336037294],[-14.086636460851059,-18.72460174766458,-16.091847173357802,-19.716199175434316,-20.886983855293977,-18.72460174766458],[1.4901161183274104e-07,42.141258611209174,42.09546350862086,45.48159865589017,40.60253570038181,42.141258611209174],[1.4901161183274104e-07,11.512231668937911,9.207940380328012,14.086628323925925,12.59533654570297,11.512231668937911],[1.4901161183274104e-07,46.8255692854358,47.81356783182132,49.49107196884932,44.57316742675818,46.8255692854358],[10.316431813072287,42.18893558571945,42.255661432466965,45.48159865589017,40.5603076939685,42.18893558571945],[10.316431813072287,46.58620193440303,47.29177394344185,49.49107196884932,44.50268072419203,46.58620193440303],[10.316431813072287,13.207547939989302,10.579188220245618,14.086628323925925,15.418908586298539,13.207547939989302],[19.716203645782667,43.870458255490036,45.707702634001905,45.4816016361224,41.268954647480705,43.870458255490036],[19.716203645782667,42.14447471587159,42.10674584597549,45.48159865589017,40.59921115828111,42.14447471587159],[19.716203645782667,36.8031305827306,38.96875402471463,37.7874824419565,34.17057166962102,36.8031305827306],[27.364102731599623,37.13076542855947,39.43060365454636,37.7874824419565,34.519408038797295,37.13076542855947],[27.364102731599623,15.671056156124447,13.817684135040565,14.086628323925925,18.276014664659932,15.671056156124447],[27.364102731599623,27.05023113441575,29.55451218213284,27.032038898098197,24.554579724928274,27.05023113441575],[32.58058143330431,37.389807309611385,39.77929734201051,37.7874824419565,34.8116767788619,37.389807309611385],[32.58058143330431,46.172708758150435,46.180564836926045,49.49107196884932,44.590759559489946,46.172708758150435],[32.58058143330431,15.71495504993772,13.888193760195465,14.086628323925925,18.314126631620265,15.71495504993772],[34.90213197973361,46.14657342286713,44.616425641434,49.49107196884932,46.09023057129122,46.14657342286713],[34.90213197973361,27.71682794543535,25.427563161483658,27.032038898098197,30.33092809536222,27.71682794543535],[34.90213197973361,1.9347294644512385,4.476924339442564,-3.969253036700428e-06,0.31029144530564456,1.9347294644512385],[34.122476702557805,46.978510166146194,44.64215232893922,49.49107196884932,48.123013466704194,46.978510166146194],[34.122476702557805,15.64829963286489,18.256039076850996,14.086629814042041,13.781351223873164,15.64829963286489],[34.122476702557805,27.524893627461783,25.16669890261329,27.032038898098197,30.116878082166444,27.524893627461783],[30.310888715932137,-11.201005551327704,-9.10180806676115,-14.086627520154368,-11.931384314340846,-11.201005551327704],[30.310888715932137,14.928449375556566,12.701501504711466,14.086628323925925,17.554722046433717,14.928449375556566],[30.310888715932137,-34.371996995404096,-33.015832967166645,-37.78747865795271,-34.10799896037589,-34.371996995404096],[23.80604399541585,-11.070832993002156,-9.086815640308302,-14.086627520154368,-11.624283191120737,-11.070832993002156],[23.80604399541585,-23.701179117113636,-22.143387696116626,-27.03203511409441,-23.67895136140621,-23.701179117113636],[23.80604399541585,14.544658108434398,12.174792944033955,14.086628323925925,17.131793501172893,14.544658108434398],[15.185933698368974,-42.03541212356637,-41.6547594877335,-45.48159785211861,-40.781337967687634,-42.03541212356637],[15.185933698368974,-11.03499673821603,-9.086979183322391,-14.086627520154368,-11.535447913760143,-11.03499673821603],[15.185933698368974,-46.21666155646378,-46.323054687848945,-49.491071165077756,-44.55702506100495,-46.21666155646378],[5.216481458419504,-46.36377341868487,-46.74463372134374,-49.491071165077756,-44.49945348431445,-46.36377341868487],[5.216481458419504,13.71285043732566,11.138495110462522,14.086628323925925,16.109901122621647,13.71285043732566],[5.216481458419504,-46.70811215309327,-47.56414609374426,-49.491071165077756,-44.53195851621293,-46.70811215309327],[-5.216479074233715,-46.51770817493984,-47.13133005870846,-49.491071165077756,-44.49364688821308,-46.51770817493984],[-5.216479074233715,-23.720014454805927,-22.1261863145379,-27.03203511409441,-23.742758117071745,-23.720014454805927],[-5.216479074233715,13.290010823691157,10.666685904145925,14.086628323925925,15.535453622841452,13.290010823691157],[-15.185931314183183,-24.415982091245727,-22.134696027436203,-27.03203511409441,-25.45632169951252,-24.415982091245727],[-15.185931314183183,25.290493082142895,22.70889598322473,27.032038898098197,27.04597347448084,25.290493082142895],[-15.185931314183183,-43.72736299877323,-45.47460933603583,-45.48159785211861,-41.14798080476949,-43.72736299877323],[-23.806045783555195,-26.356739624929652,-23.743547995436785,-27.03203511409441,-28.649599236529983,-26.356739624929652],[-23.806045783555195,11.070835275820928,11.624285457890263,14.086629814042041,9.08681793392569,11.070835275820928],[-23.806045783555195,24.93075701950554,22.43306382155637,27.032038898098197,26.431689725002506,24.93075701950554],[-30.31089050407148,-27.495139731747923,-25.126959396740176,-27.03203511409441,-30.082997584299562,-27.495139731747923],[-30.31089050407148,34.971074052164205,32.818834102934076,37.78747946172427,35.78732872898609,34.971074052164205],[-30.31089050407148,-37.27232164499874,-39.62290858414838,-37.78747865795271,-34.677365702740346,-37.27232164499874],[-34.12247640453458,34.738450465269295,32.78774697219219,37.78747946172427,35.24282175752669,34.738450465269295],[-34.902131681710394,-1.9347369260844762,-0.3102985678845969,-3.969253036700428e-06,-4.4769319139215,-1.9347369260844762],[-34.902131681710394,34.554191379641125,32.83011386579328,37.78747946172427,34.74453186669106,34.554191379641125],[-34.902131681710394,-27.71683279991532,-30.330932921231064,-27.0320440547911,-25.42756790121754,-27.71683279991532],[-32.580581135281086,23.890439195461216,22.043289598407497,27.032038898098197,24.247344909202425,23.890439195461216],[-32.580581135281086,34.42026800472488,32.93954441077735,37.78747946172427,34.30372690788409,34.42026800472488],[-27.364106605901533,46.053441613696094,45.70796272590495,49.49107196884932,44.76825202212737,46.053441613696094],[-27.364106605901533,34.33563750176765,33.103641220016186,37.78747946172427,33.93022391151379,34.33563750176765],[-27.364106605901533,-15.6710637307153,-18.276022309800936,-14.086636460851059,-13.81769137233334,-15.6710637307153],[-19.716199175434316,34.295195575421,33.30098551128756,37.78747946172427,33.632811804259035,34.295195575421],[-10.316434644292908,-1.851070491706736,-4.411851502446555,4.018857801306286e-07,-0.16836031680211647,-1.851070491706736]]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1321\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1322\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p1327\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"color\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"line_width\":{\"type\":\"value\",\"value\":4},\"line_join\":{\"type\":\"value\",\"value\":\"round\"}}},\"selection_glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p1328\",\"attributes\":{\"line_color\":{\"type\":\"value\",\"value\":\"#fdae61\"},\"line_width\":{\"type\":\"value\",\"value\":5},\"line_join\":{\"type\":\"value\",\"value\":\"round\"}}},\"hover_glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p1329\",\"attributes\":{\"line_color\":{\"type\":\"value\",\"value\":\"#abdda4\"},\"line_width\":{\"type\":\"value\",\"value\":5},\"line_join\":{\"type\":\"value\",\"value\":\"round\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesAndLinkedEdges\",\"id\":\"p1352\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"EdgesAndLinkedNodes\",\"id\":\"p1353\"}}},{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p1272\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p1289\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[0,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAASUBBE2laWPiaPg==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qsgLTcH8R0CaVjSMWiwsQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[2,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SC4uxAUIRUAZiIOzMwg7QA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[3,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dmdk1BtfQEBPMIMgzORCQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[4,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RB9UIlDFNEBEbFYGpb1GQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[5,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NBHMcYV2HEBXGD9y275IQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[6,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"l4Wd+4R2HMBXGD9y275IQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[7,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XXzI60/FNMBDbFYfpb1GQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[8,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"A5YeuRtfQMBOMIM5zORCQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[9,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1FzowQUIRcAZiIOzMwg7QA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[10,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NvfFSsH8R8CYVjS+WiwsQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[11,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"iy66/f//SMDRF4T386XQvg==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[12,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NvfFSsH8R8BB/jtxWiwswA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[13,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0Vzo8wUIRcDvWwd0Mwg7wA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[14,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ApYe0htfQMA5GsUZzORCwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[15,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WnzINlDFNMAuVpj/pL1GwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[16,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"e4WdU4d2HMBAAoFr275IwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[17,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GRHMyYd2HEBAAoFr275IwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[18,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Qx9UO1DFNEAuVpj/pL1GwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[19,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dmdk1BtfQEA5GsUZzORCwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[20,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SS4uqwUIRUDoWwcKNAg7wA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[21,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"q8gLNMH8R0Az/judWywswA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[22,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACAQUAxDMP///+DPg==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[23,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lF6CUPe4QEBxHsFZA6IkQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[24,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"14gSZhnrPECb6UMfWbczQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[25,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PSko9XfSNUDKmizWNV07QA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[26,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2WSHC+mSKUB5Wg5+UEpAQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[27,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SpAVtKfsBEDY0IoPeXNBQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[28,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HWT2lSYnH8D8AAxRrQ9BQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[29,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AABgIgCAMcC8nyNnlk8+QA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[30,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"IiRHHSWoOcDAcjfmWM43QA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[31,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4jo1Tq6IP8AqcKOzMl8uQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[32,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1e2VRfZNQcCbaMBQrd0UQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[33,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1e2VRfZNQcCdaMCwrN0UwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[34,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4jo1Tq6IP8AqcKNjMl8uwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[35,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"IiRH+iSoOcDBcjcEWc43wA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[36,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AQDgyv9/McC8nyOFlk8+wA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[37,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"G2T2IScnH8D8AIxOrQ9BwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[38,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QJAV/KrsBEDZ0AoNeXNBwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[39,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2WSHLumSKUB5Wo57UEpAwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[40,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PikojHfSNUDKmiwXNl07wA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[41,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"14gSiRnrPECd6UPUWLczwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[42,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lF6CUPe4QEBuHsG4A6IkwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1277\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1274\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1275\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1276\"},\"data\":{\"type\":\"map\",\"entries\":[[\"k\",[\"100.0\",\"0.05\",\"100.0\",\"100.0\",\"0.05\",\"100.0\",\"0.05\",\"100.0\",\"0.05\",\"100.0\",\"100.0\",\"0.05\",\"100.0\",\"0.05\",\"100.0\",\"0.001\",\"100.0\",\"0.001\",\"100.0\",\"0.001\",\"0.1\"]],[\"k_r\",[\"10.0\",\"None\",\"10.0\",\"10.0\",\"None\",\"10.0\",\"None\",\"10.0\",\"None\",\"10.0\",\"10.0\",\"None\",\"10.0\",\"None\",\"10.0\",\"None\",\"10.0\",\"None\",\"10.0\",\"None\",\"None\"]],[\"species\",[\"dna[mydna]+protein[RNAP] <--> complex[dna[mydna]:protein[RNAP]]\",\"complex[dna[mydna]:protein[RNAP]] --> dna[mydna]+rna[mydna]+protein[RNAP]\",\"2protein[laci]+dna[mydna] <--> complex[dna[mydna]:2x_protein[laci]]\",\"complex[dna[mydna]:2x_protein[laci]]+protein[RNAP] <--> complex[complex[dna[mydna]:2x_protein[laci]]:protein[RNAP]]\",\"complex[complex[dna[mydna]:2x_protein[laci]]:protein[RNAP]] --> complex[dna[mydna]:2x_protein[laci]]+rna[mydna]+protein[RNAP]\",\"rna[mydna]+protein[Ribo] <--> complex[protein[Ribo]:rna[mydna]]\",\"complex[protein[Ribo]:rna[mydna]] --> rna[mydna]+protein[GFP]+protein[Ribo]\",\"dna[part[ptet-forward]:part[utr1-forward]:part[GFP-forward]:part[t16-forward]]+protein[RNAP] <--> ordered_polymer[complex[part[ptet]:protein[RNAP]-forward]:part[utr1-forward]:part[GFP-forward]:part[t16-forward]]\",\"ordered_polymer[complex[part[ptet]:protein[RNAP]-forward]:part[utr1-forward]:part[GFP-forward]:part[t16-forward]] --> dna[part[ptet-forward]:part[utr1-forward]:part[GFP-forward]:part[t16-forward]]+rna[part[utr1-forward]:part[GFP-forward]:part[t16-forward]]+protein[RNAP]\",\"2protein[tetR]+dna[part[ptet-forward]:part[utr1-forward]:part[GFP-forward]:part[t16-forward]] <--> ordered_polymer[complex[part[ptet]:2x_protein[tetR]-forward]:part[utr1-forward]:part[GFP-forward]:part[t16-forward]]\",\"ordered_polymer[complex[part[ptet]:2x_protein[tetR]-forward]:part[utr1-forward]:part[GFP-forward]:part[t16-forward]]+protein[RNAP] <--> ordered_polymer[complex[complex[part[ptet]:2x_protein[tetR]]:protein[RNAP]-forward]:part[utr1-forward]:part[GFP-forward]:part[t16-forward]]\",\"ordered_polymer[complex[complex[part[ptet]:2x_protein[tetR]]:protein[RNAP]-forward]:part[utr1-forward]:part[GFP-forward]:part[t16-forward]] --> ordered_polymer[complex[part[ptet]:2x_protein[tetR]-forward]:part[utr1-forward]:part[GFP-forward]:part[t16-forward]]+rna[part[utr1-forward]:part[GFP-forward]:part[t16-forward]]+protein[RNAP]\",\"rna[part[utr1-forward]:part[GFP-forward]:part[t16-forward]]+protein[Ribo] <--> ordered_polymer[complex[part[utr1]:protein[Ribo]-forward]:part[GFP-forward]:part[t16-forward]]\",\"ordered_polymer[complex[part[utr1]:protein[Ribo]-forward]:part[GFP-forward]:part[t16-forward]] --> rna[part[utr1-forward]:part[GFP-forward]:part[t16-forward]]+protein[GFP]+protein[Ribo]\",\"rna[part[utr1-forward]:part[GFP-forward]:part[t16-forward]]+protein[RNAase] <--> complex[protein[RNAase]:rna[part[utr1-forward]:part[GFP-forward]:part[t16-forward]]]\",\"complex[protein[RNAase]:rna[part[utr1-forward]:part[GFP-forward]:part[t16-forward]]] --> protein[RNAase]\",\"complex[protein[Ribo]:rna[mydna]]+protein[RNAase] <--> complex[complex[protein[Ribo]:rna[mydna]]:protein[RNAase]]\",\"complex[complex[protein[Ribo]:rna[mydna]]:protein[RNAase]] --> protein[Ribo]+protein[RNAase]\",\"rna[mydna]+protein[RNAase] <--> complex[protein[RNAase]:rna[mydna]]\",\"complex[protein[RNAase]:rna[mydna]] --> protein[RNAase]\",\"rna[mydna] --> \"]],[\"color\",[\"cornflowerblue\",\"orange\",\"cornflowerblue\",\"cornflowerblue\",\"orange\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"orange\",\"cornflowerblue\",\"cornflowerblue\",\"orange\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\",\"cornflowerblue\"]],[\"type\",[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"]],[\"index\",[22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1278\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1279\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1332\",\"attributes\":{\"size\":{\"type\":\"value\",\"value\":8},\"fill_color\":{\"type\":\"field\",\"field\":\"color\"},\"marker\":{\"type\":\"value\",\"value\":\"square\"}}},\"selection_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1333\",\"attributes\":{\"size\":{\"type\":\"value\",\"value\":8},\"fill_color\":{\"type\":\"value\",\"value\":\"#fdae61\"},\"marker\":{\"type\":\"value\",\"value\":\"square\"}}},\"hover_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1334\",\"attributes\":{\"size\":{\"type\":\"value\",\"value\":8},\"fill_color\":{\"type\":\"value\",\"value\":\"#abdda4\"},\"marker\":{\"type\":\"value\",\"value\":\"square\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1284\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1281\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1282\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1283\"},\"data\":{\"type\":\"map\",\"entries\":[[\"start\",[]],[\"end\",[]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1285\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1286\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p1280\"}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p1287\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p1288\"}}},{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p1290\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p1307\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[0,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAASUBBE2laWPiaPg==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qsgLTcH8R0CaVjSMWiwsQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[2,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SC4uxAUIRUAZiIOzMwg7QA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[3,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dmdk1BtfQEBPMIMgzORCQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[4,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RB9UIlDFNEBEbFYGpb1GQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[5,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NBHMcYV2HEBXGD9y275IQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[6,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"l4Wd+4R2HMBXGD9y275IQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[7,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XXzI60/FNMBDbFYfpb1GQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[8,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"A5YeuRtfQMBOMIM5zORCQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[9,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1FzowQUIRcAZiIOzMwg7QA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[10,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NvfFSsH8R8CYVjS+WiwsQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[11,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"iy66/f//SMDRF4T386XQvg==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[12,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NvfFSsH8R8BB/jtxWiwswA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[13,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0Vzo8wUIRcDvWwd0Mwg7wA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[14,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ApYe0htfQMA5GsUZzORCwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[15,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WnzINlDFNMAuVpj/pL1GwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[16,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"e4WdU4d2HMBAAoFr275IwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[17,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GRHMyYd2HEBAAoFr275IwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[18,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Qx9UO1DFNEAuVpj/pL1GwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[19,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dmdk1BtfQEA5GsUZzORCwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[20,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SS4uqwUIRUDoWwcKNAg7wA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[21,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"q8gLNMH8R0Az/judWywswA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[22,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACAQUAxDMP///+DPg==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[23,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lF6CUPe4QEBxHsFZA6IkQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[24,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"14gSZhnrPECb6UMfWbczQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[25,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PSko9XfSNUDKmizWNV07QA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[26,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2WSHC+mSKUB5Wg5+UEpAQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[27,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SpAVtKfsBEDY0IoPeXNBQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[28,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HWT2lSYnH8D8AAxRrQ9BQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[29,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AABgIgCAMcC8nyNnlk8+QA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[30,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"IiRHHSWoOcDAcjfmWM43QA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[31,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4jo1Tq6IP8AqcKOzMl8uQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[32,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1e2VRfZNQcCbaMBQrd0UQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[33,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1e2VRfZNQcCdaMCwrN0UwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[34,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4jo1Tq6IP8AqcKNjMl8uwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[35,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"IiRH+iSoOcDBcjcEWc43wA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[36,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AQDgyv9/McC8nyOFlk8+wA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[37,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"G2T2IScnH8D8AIxOrQ9BwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[38,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QJAV/KrsBEDZ0AoNeXNBwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[39,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2WSHLumSKUB5Wo57UEpAwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[40,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PikojHfSNUDKmiwXNl07wA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[41,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"14gSiRnrPECd6UPUWLczwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[42,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lF6CUPe4QEBuHsG4A6IkwA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1295\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1292\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1293\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1294\"},\"data\":{\"type\":\"map\",\"entries\":[[\"image\",[\"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\",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]],[\"color\",[null,\"blue\",\"blue\",\"blue\",\"grey\",\"grey\",\"grey\",\"blue\",\"grey\",\"grey\",\"green\",\"grey\",\"grey\",\"grey\",\"grey\",\"blue\",\"grey\",\"grey\",\"grey\",\"grey\",\"grey\",\"grey\"]],[\"type\",[\"nothing\",\"protein\",\"protein\",\"protein\",\"dna\",\"rna\",\"complex\",\"protein\",\"complex\",\"complex\",\"protein\",\"complex\",\"dna\",\"rna\",\"ordered_polymer\",\"protein\",\"ordered_polymer\",\"ordered_polymer\",\"ordered_polymer\",\"complex\",\"complex\",\"complex\"]],[\"species\",[\"nothing\",\"protein[RNAP in default.]\",\"protein[Ribo in default.]\",\"protein[RNAase in default.]\",\"dna[mydna in default.]\",\"rna[mydna in default.]\",\"complex[dna[mydna]:protein[RNAP] in default.]\",\"protein[laci in default.]\",\"complex[dna[mydna]:2x_protein[laci] in default.]\",\"complex[complex[dna[mydna]:2x_protein[laci]]:protein[RNAP] in default.]\",\"protein[GFP in default.]\",\"complex[protein[Ribo]:rna[mydna] in default.]\",\"dna[part[ptet-forward]:part[utr1-forward]:part[GFP-forward]:part[t16-forward] in default.]\",\"rna[part[utr1-forward]:part[GFP-forward]:part[t16-forward] in default.]\",\"ordered_polymer[complex[part[ptet]:protein[RNAP]-forward]:part[utr1-forward]:part[GFP-forward]:part[t16-forward] in default.]\",\"protein[tetR in default.]\",\"ordered_polymer[complex[part[ptet]:2x_protein[tetR]-forward]:part[utr1-forward]:part[GFP-forward]:part[t16-forward] in default.]\",\"ordered_polymer[complex[complex[part[ptet]:2x_protein[tetR]]:protein[RNAP]-forward]:part[utr1-forward]:part[GFP-forward]:part[t16-forward] in default.]\",\"ordered_polymer[complex[part[utr1]:protein[Ribo]-forward]:part[GFP-forward]:part[t16-forward] in default.]\",\"complex[protein[RNAase]:rna[part[utr1-forward]:part[GFP-forward]:part[t16-forward]] in default.]\",\"complex[complex[protein[Ribo]:rna[mydna]]:protein[RNAase] in default.]\",\"complex[protein[RNAase]:rna[mydna] in default.]\"]],[\"index\",[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1296\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1297\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1335\",\"attributes\":{\"size\":{\"type\":\"value\",\"value\":12},\"fill_color\":{\"type\":\"field\",\"field\":\"color\"}}},\"selection_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1336\",\"attributes\":{\"size\":{\"type\":\"value\",\"value\":15},\"fill_color\":{\"type\":\"value\",\"value\":\"#fdae61\"}}},\"hover_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1337\",\"attributes\":{\"size\":{\"type\":\"value\",\"value\":15},\"fill_color\":{\"type\":\"value\",\"value\":\"#abdda4\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1302\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1299\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1300\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1301\"},\"data\":{\"type\":\"map\",\"entries\":[[\"start\",[]],[\"end\",[]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1303\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1304\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p1298\"}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p1305\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p1306\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1271\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p1338\",\"attributes\":{\"renderers\":[{\"id\":\"p1308\"}],\"tooltips\":null}},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p1339\",\"attributes\":{\"renderers\":[{\"id\":\"p1290\"}],\"tooltips\":[[\"name\",\"@species\"],[\"type\",\"@type\"]],\"attachment\":\"right\"}},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p1340\",\"attributes\":{\"renderers\":[{\"id\":\"p1272\"}],\"tooltips\":[[\"reaction\",\"@species\"],[\"type\",\"@type\"],[\"k_f\",\"@k\"],[\"k_r\",\"@k_r\"]],\"attachment\":\"right\"}},{\"type\":\"object\",\"name\":\"TapTool\",\"id\":\"p1341\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"BoxSelectTool\",\"id\":\"p1342\",\"attributes\":{\"renderers\":\"auto\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1343\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"editable\":true,\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p1349\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p1348\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1350\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1351\",\"attributes\":{\"renderers\":\"auto\"}}]}}}}]}};\n", " const render_items = [{\"docid\":\"09b95d46-a3be-4a4c-afdc-708e55fe3eab\",\"roots\":{\"p1265\":\"f80df31b-3af2-4cb5-859d-406b6e10bd78\"},\"root_ids\":[\"p1265\"]}];\n", " void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " let attempts = 0;\n", " const timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p1265" } }, "output_type": "display_data" } ], "source": [ "from biocrnpyler.components import RBS, CDS, Terminator, DNA_construct\n", "from biocrnpyler.utils.plotting import render_mixture, render_network_bokeh\n", "#this is an example of how to use the new image plotting. It is designed to combine dnaplotlib and the network representation to show constructs and where proteins are bound to them.\n", "\n", "#to use this to its full potential you must make dna_constructs:\n", "txtl = TxTlExtract(\"mixture1\", parameter_file = 'default_parameters.txt')\n", "\n", "ptet = RegulatedPromoter(\"ptet\",[\"tetR\"])\n", "utr1 = RBS(\"utr1\")\n", "gfp = CDS(\"GFP\")\n", "t16 = Terminator(\"t16\")\n", "\n", "construct = DNA_construct([ptet,utr1,gfp,t16], initial_concentration=5)\n", "\n", "\n", "dna = DNAassembly(\"mydna\",promoter=RegulatedPromoter(\"plac\",[\"laci\"]),rbs=utr1,protein=\"GFP\", initial_concentration = 10)\n", "txtl.add_component(dna)\n", "txtl.add_component(construct)\n", "crn1 = txtl.compile_crn()\n", "crn1.add_reactions([Reaction.from_massaction([Species(\"mydna\",material_type=\"rna\")],[],k_forward=0.1)])\n", "try:\n", " #dnaplotlib is a cool library for plotting DNAs.\n", " #please use my fork located at https://github.com/dr3y/dnaplotlib\n", " #to install it type: pip install git+git://github.com/dr3y/dnaplotlib.git@master\n", " import dnaplotlib as dpl # type: ignore\n", " %matplotlib inline\n", " dpl_enabled = True\n", "except (ModuleNotFoundError,ImportError) as e:\n", " dpl_enabled = False\n", "\n", "try:\n", " from bokeh.models import (Plot , Range1d)\n", " import bokeh.plotting\n", " import bokeh.io\n", " bokeh.io.output_notebook() #this makes the graph appear in line with the notebook\n", "\n", " #this demonstrates the \"circle\" layout. reactions are in the middle with species on the outside.\n", " #also, the pretty_print text display style\n", "\n", " colordict = {\n", " \"G1\":\"red\", #will only effect the species dna_G1 and rna_G1\n", " \"protein_GFP\": \"green\", #will only effect the species protein_GFP\n", " \"GFP\":\"lightgreen\", #this will affect how the dnaplotlib is drawn\n", " \"protein\": \"blue\", #All protein species, protein_Ribo, protein_RNAase, and protein_RNAP will be blue\n", " \"transcription_mm\":\"green\"\n", " #All other species will be grey by default. This will include all complexes.\n", " }\n", " reactioncolordict = {\n", " \"kint\":\"yellow\", #reactions containing \"kint\" will be yellow\n", " \"kb\":\"cornflowerblue\", #reactions containing \"kb\" will be cornflowerblue\n", " \"ktx\":\"orange\" #transcription reactions will be orange\n", " #all other reactions will be grey by default\n", " }\n", " if(dpl_enabled):\n", " images =render_mixture(txtl,crn1,colordict)\n", " else:\n", " images = None\n", " plot = render_network_bokeh(crn1,\n", " colordict = colordict,\n", " reactioncolordict = reactioncolordict,\n", " use_pretty_print=True, #uses pretty print\n", " pp_show_rates=False, #this would put the reaction rates in the reaction name. It's already listed seperately in the tool tip\n", " pp_show_attributes=False,\n", " pp_show_material = True, #this lists the material of the species being displayed\n", " imagedict =images, #this is a dictionary of which images to show for each species\n", " layout=\"circle\",\n", " )\n", " bokeh.io.show(plot)\n", "except ModuleNotFoundError:\n", " print('please install the plotting libraries: pip install biocrnpyler[all]')" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# End" ] } ], "metadata": { "interpreter": { "hash": "7b4b4feff2f24a0f0a34464dbe537a36fda679851528fb8735cb41fa49dffb2d" }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.3" }, "metadata": { "interpreter": { "hash": "7b4b4feff2f24a0f0a34464dbe537a36fda679851528fb8735cb41fa49dffb2d" } } }, "nbformat": 4, "nbformat_minor": 4 }